逗号分隔的字符串转集合

逗号分隔的字符串转集合

主要分为两部分

1.现将字符串转换成数组(字符串转数组又可以分为几种方式,就不再叙述了)

2.再讲数组转换成集合

方法一
List<String> stringList1 = Arrays.asList(str.split(","));
方法二
List<String> stringList2 = Arrays.stream(str.split(",")).collect(Collectors.toList());
方法三
List<String> stringList3 = Splitter.on(",").trimResults().splitToList(str);

比较几种方式运行时间

@Test
    public void strToList() {
        List<String> testList = new ArrayList<>();
        for (int i = 0; i < 100000000; i++) {
            testList.add("数据" + i);
        }
        String str = StringUtils.collectionToCommaDelimitedString(testList);

        //方法一
        long startTime1 = System.currentTimeMillis();
        List<String> stringList1 = Arrays.asList(str.split(","));
        long endTime1 = System.currentTimeMillis();
        log.info("方法一耗时:数据量:{},耗时{}", stringList1.size(), (endTime1 - startTime1));

        //方法2
        long startTime2 = System.currentTimeMillis();
        List<String> stringList2 = Arrays.stream(str.split(",")).collect(Collectors.toList());
        long endTime2 = System.currentTimeMillis();
        log.info("方法二耗时:数据量:{},耗时{}", stringList2.size(), (endTime2 - startTime2));


        //方法3
        long startTime3 = System.currentTimeMillis();
        List<String> stringList3 = Splitter.on(",").trimResults().splitToList(str);
        long endTime3 = System.currentTimeMillis();
        log.info("方法三耗时:数据量:{},耗时{}", stringList3.size(), (endTime3 - startTime3));

    }

数量级 百、千

结果:运行多次三种方式每次运行结果耗时相差不大

结论:运行多次效率比方法一>方法三>方法二

数量级 万

结果:运行多次三种方式每次运行结果耗时相差不大  

结论:运行多次效率比方法一>方法三>方法二

数量级 十万

结果:运行多次三种方式每次运行结果耗时相差不大

 结论:运行多次效率比方法一>方法三>方法二

数量级 百万

 结果:运行多次三种方式每次运行结果耗时相差不大 

结论:运行多次效率比方法一>方法三>方法二

千万级别对比

结果:方法三只要第一次运行的时候耗时特别短,后面多次表现中规中矩

结论, 综合比较 方法一>方法三>方法二

如果小伙伴在业务处理中,遇到更高级别数据转换时 可以具体分析下,如果有更高效的转换方式,也请大家留言提醒

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值