不需要接受的答案中的帮助方法。流可以与lambda一起使用,或者通常使用Method References缩短。流启用功能操作。map()转换元素和/ collect(...)或toArray()将流包装回数组或集合。
Venkat Subramaniam的演讲(视频)比我更好地解释了这一点。
1转换List成List
List l1 = Arrays.asList("1", "2", "3");
List r1 = l1.stream().map(Integer::parseInt).collect(Collectors.toList());
// the longer full lambda version:
List r1 = l1.stream().map(s -> Integer.parseInt(s)).collect(Collectors.toList());
2转换List为int[]
int[] r2 = l1.stream().mapToInt(Integer::parseInt).toArray();
3转换String[]为List
String[] a1 = {"4", "5", "6"};
List r3 = Stream.of(a1).map(Integer::parseInt).collect(Collectors.toList());
4转换String[]为int[]
int[] r4 = Stream.of(a1).mapToInt(Integer::parseInt).toArray();
5转换String[]成List
List r5 = Stream.of(a1).map(Double::parseDouble).collect(Collectors.toList());
6(奖金)转换int[]为String[]
int[] a2 = {7, 8, 9};
String[] r6 = Arrays.stream(a2).mapToObj(Integer::toString).toArray(String[]::new);
当然,可能会有更多变化。
另请参见这些示例的Ideone版本。可以单击fork,然后运行以在浏览器中运行。