JAVA List<String> 用 stream转为 List<Long>

可以使用 Java Stream 将 List 转换为 List,前提是这些字符串可以被正确解析为数字。

List longList = strList.stream()
        .flatMap(s -> {
            try {
                return Stream.of(Long.parseLong(s));
            } catch (NumberFormatException e) {
                return Stream.empty();
            }
        })
        .collect(Collectors.toList());

说明:


.map(Long::valueOf) 或 .map(Long::parseLong): 
        都可以将字符串转换成 Long 类型;
        Long.valueOf() 内部调用的是 parseLong(),区别不大;
.collect(Collectors.toList()): 
        把 Stream 中的元素收集回 List

Stream.of:

        Optional 安全转换

你可能感兴趣的:(java,list)