我想要List<String>
转换为List<Long>
。在Java 8之前,我会通过循环遍历List<String>
,将每个String
转换为Long
并将其添加到新的List<Long>
来实现,如下所示。
List<String> strings = /* get list of strings */;
List<Long> longs = new ArrayList<>();
for (final String string : strings) {
longs.add(Long.valueOf(string));
}
但是,我需要使用Java 8流进行此转换,因为转换是更大流操作的一部分。我将List<String>
作为流,就好像我已经完成strings.stream()
一样。那么,我怎么能执行这种转换,类似于这样的事情。
List<String> strings = /* get list of strings */;
List<Long> longs = strings.stream().map(/*convert to long*/).collect(Collectors.toList());
答案 0 :(得分:10)
解决方案非常简单。只需要使用Long::valueOf
。
List<Long> longs = strings.stream().map(Long::valueOf).collect(Collectors.toList());