如何在Java8中转换列表?

如何在Java8中转换列表?,java,Java,在Java8中,我可以编写 List<String> strList = Arrays.asList("1", "2", "3"); List<Integer> intList = strList.stream().map(s -> Integer.valueOf(s)).collect(Collectors.toList()); 如果您切换到c,有一组称为linq的功能可以轻松地进行这种转换,我会怀疑这是因为为集合接口定义一个新方法来返回新的流类型,并将所有映射

在Java8中,我可以编写

List<String> strList = Arrays.asList("1", "2", "3");
List<Integer> intList = strList.stream().map(s -> Integer.valueOf(s)).collect(Collectors.toList());

如果您切换到c,有一组称为linq的功能可以轻松地进行这种转换,我会怀疑这是因为为集合接口定义一个新方法来返回新的流类型,并将所有映射、筛选和缩减函数添加到该新类型更容易,而不是为每个集合添加默认方法。记住,旧的集合实现需要默认接口方法才能加入新的API。@TomG所说的:通过单个接口添加尽可能多的新功能简化了问题……更不用说像convert方法将使用什么列表实现这样的微妙选择了。
// won't work, as List has no convert() or transform() method:
List<Integer> intList = strList.convert(s -> Integer.valueOf(s));
// any idea which library provides this util?
List<Integer> intList = SomeLibraryUtil.convert(strList, s -> Integer.valueOf(s));