天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
两个List合并、去重、排序
- 1. 创建两个List
- 2. 合并
- 3. 去重
- 4. 排序
- 5. 去重排序后转为List
- 6. 完整代码
1. 创建两个List
创建list1
List l1 = new ArrayList();
l1.add(10);
l1.add(1);
l1.add(1000);
l1.add(100);
创建list2
List l2 = new ArrayList();
l2.add(1);
l2.add(111);
l2.add(999);
l2.add(222);
l2.add(100);
创建list
List list = new ArrayList();
2. 合并
使用List自带的addAll()函数将两个List合并
list.addAll(list1);
list.addAll(list2);
去重和排序是通过java8新特性,流Stream()来处理
3. 去重
list.Stream().distinct();
4. 排序
list.Stream().sorted()
以上的去重排序后得到的是一个Stream流,而非List
想要得到List需要转换一下
5. 去重排序后转为List
list = Arrays.asList(list.stream().distinct().sorted().toArray());
6. 完整代码
package com.data.test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @ClassDescription:
* @Author:李白
* @Date:2023/8/16 9:36
*/
public class DistinctTest {
public static void main(String[] args) {
List l1 = new ArrayList();
l1.add(10);
l1.add(1);
l1.add(1000);
l1.add(100);
List l2 = new ArrayList();
l2.add(1);
l2.add(111);
l2.add(999);
l2.add(222);
l2.add(100);
System.out.println("l1:"+l1);
System.out.println("l2:"+l2);
List list = new ArrayList();
list.addAll(l1);
list.addAll(l2);
System.out.println("合并后的list: "+list);
list = Arrays.asList(list.stream().distinct().sorted().toArray());
System.out.println("去重排序后的list: "+list);
}
}
运行打印后的结果如下:
如图所示:
合并后的list是将l1和l2合并的结果
去重排序后的list是将1和100去重后排序的结果