JAVA集合与字符串转换

  • Post author:
  • Post category:java


JAVA集合与字符串转换



集合与字符串转换

这里面包含的内容麻雀虽小五脏俱全,常用的一些java遍历,JDK1.8新特性实用,任意对象排序分组,字符串切割,集合切割,字符串转集合,集合转字符串 随意操作

感谢guava给我们提供的优秀API工具类

pom.xml依赖

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1.1-jre</version>
</dependency>

/**
     *
     * 本期主角:guava 到maven官方搜索版本资源 jdk1.8
     * 1、list集合与字符串转换,不要在用笨方法分割了 有简单有效的方式需要使用guava
     * 2、在做个简单JDK1.8的stream 流操作排序
     * 3、还有一个操作是list分组切割 别再用老方法了各种计算切割了
     */
    @Test
    public void test36() {
        //首先建立一个list集合 张三、李四、王五、韩六、安八
        List<String> list1 = Arrays.asList("zhangsan", "lisi", "wangwu", "hanliu", "anba");
        //先将list转字符串操作用逗号分隔
        String ss = Joiner.on(",").join(list1);
        System.out.println(ss); 
        //在反过来将字符串用逗号分隔 转成 list
        List<String> list2 = Splitter.on(",").splitToList(ss);
        System.out.println(list2);
        //下面干的事是给list分组操作 5个人2个人一组 总共可以分成3组 这里就是2维数组了
        List<List<String>> relist = Lists.partition(list2, 2);
        //list 分组统计一下人
        List<List<String>> nList = Lists.newArrayList();
        relist.stream().forEach(mm -> {
            //第一层mm是2个人我还需要在遍历一层
            nList.add(mm);
            mm.stream().sorted((a, b) -> {
                //第二层遍历以后 a与b分别代表两个对象 第一组 zhangsan、lisi 名字最短的先输出
                //这里在做一下forEach是stream流的关闭方法 我这么叫的 后面不能在跟其他方法了,
                //其次 forEach遍历不能改变内部类以外的变量值与改变流中数据形态,
                // 但是 可以在外面创建一个nList新集合接收 forEach里面的接收对象 这个回头自己试试
                if (a.length() >= b.length()) {
                    return 1;
                } else {
                    return -1;
                }
            }).forEach(mk -> {
                System.out.println(mk);
                
            });
        });
        System.out.println("分组第一层LIST大小:" + nList.size());
        System.out.println(nList);
    }



版权声明:本文为weixin_43450799原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。