Los métodos auxiliares de la respuesta aceptada no son necesarios. Los flujos se pueden utilizar con lambdas o, por lo general, se pueden acortar mediante referencias de método . Los flujos permiten operaciones funcionales. map()
convierte los elementos y collect(...)
o toArray()
envolver la parte posterior de flujo de carga en una matriz o colección.
La charla de Venkat Subramaniam (video) lo explica mejor que yo.
1 Convertir List<String>
aList<Integer>
List<String> l1 = Arrays.asList("1", "2", "3");
List<Integer> r1 = l1.stream().map(Integer::parseInt).collect(Collectors.toList());
// the longer full lambda version:
List<Integer> r1 = l1.stream().map(s -> Integer.parseInt(s)).collect(Collectors.toList());
2 Convertir List<String>
aint[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3 Convertir String[]
aList<Integer>
String[] a1 = {"4", "5", "6"};
List<Integer> r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4 Convertir String[]
aint[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5 Convertir String[]
aList<Double>
List<Double> r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6 (bonificación) Convertir int[]
aString[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
Por supuesto, son posibles muchas más variaciones.
Consulte también la versión de Ideone de estos ejemplos . Puede hacer clic en la bifurcación y luego ejecutar para ejecutar en el navegador.
Lists.transform()
.