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 版权协议,转载请附上原文出处链接和本声明。