I metodi di supporto dalla risposta accettata non sono necessari. I flussi possono essere usati con lambda o in genere abbreviati utilizzando riferimenti ai metodi . I flussi consentono operazioni funzionali. map()
converte gli elementi collect(...)
eo toArray()
avvolge il flusso di nuovo in un array o in una raccolta.
Il discorso di Venkat Subramaniam (video) lo spiega meglio di me.
1 Converti List<String>
inList<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 Converti List<String>
inint[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3 Converti String[]
inList<Integer>
String[] a1 = {"4", "5", "6"};
List<Integer> r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4 Converti String[]
inint[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5 Converti String[]
inList<Double>
List<Double> r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6 (bonus) Converti int[]
inString[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
Ovviamente sono possibili molte più variazioni.
Vedi anche la versione Ideone di questi esempi . Può fare clic su fork e quindi eseguire per eseguire nel browser.
Lists.transform()
.