Metody pomocnicze z zaakceptowanej odpowiedzi nie są potrzebne. Strumienie mogą być używane z lambdami lub zwykle skracane za pomocą odniesień do metod . Strumienie umożliwiają działanie funkcjonalne. map()
konwertuje elementy i / collect(...)
lub toArray()
zawija strumień z powrotem w tablicę lub kolekcję.
Przemówienie Venkata Subramaniama (wideo) wyjaśnia to lepiej niż ja.
1 Konwertuj List<String>
naList<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 Konwertuj List<String>
naint[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3 Konwertuj String[]
naList<Integer>
String[] a1 = {"4", "5", "6"};
List<Integer> r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4 Konwertuj String[]
naint[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5 Konwertuj String[]
naList<Double>
List<Double> r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6 (bonus) Zamień int[]
naString[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
Oczywiście możliwych jest dużo więcej wariacji.
Zobacz także wersję Ideone tych przykładów . Może kliknąć widelec, a następnie uruchomić, aby uruchomić w przeglądarce.
Lists.transform()
.