当前位置:  开发笔记 > 编程语言 > 正文

使用java.util.stream api + JAVA8解析字符串列表

如何解决《使用java.util.streamapi+JAVA8解析字符串列表》经验,为你挑选了1个好方法。

我想使用新的java8 API(如stream,lambda,谓词)来使用下面的代码,并将其减少到最小行数

public static List validateChannelList(String channelList) {
    List channelListNumber = new ArrayList();
            String[] channels = channelList.split(",");
    for (String channel : channels) {
                    channelListNumber.add(Long.parseLong(channel));
                }
    }

请使用JAVA8帮助将foreach循环或整个方法减少到最小行数



1> Misha..:

使用静态导入toList并假设您没有特别需要ArrayList:

Pattern.compile(",").splitAsStream(channelList)
  .map(Long::parseLong)
  .collect(toList());


@Flown,从性能的角度来看,绝对没有区别.`Long.valueOf`只是在里面做同样的显式拳击.
顺便说一句,空字符串OP的代码将抛出`NumberFormatException`,而答案代码将返回Java-8中的空List.虽然在Java-9中它也会抛出`NumberFormatException`!有关详细信息,请参阅[JDK-8069325](https://bugs.openjdk.java.net/browse/JDK-8069325).
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有