Stream的去重排序

Easter79
• 阅读 645

1.List排序

List<Integer> list = new ArrayList<>();list.add(50);list.add(25);list.add(25);list.add(98);list.add(32);List<Integer> collect = list.stream().distinct().sorted().collect(Collectors.toList());System.out.println("去重正序" + collect);List<Integer> collect1 = list.stream().distinct().sorted(Comparator.reverseOrder()).collect(Collectors.toList());System.out.println("去重倒序" + collect1);打印结果去重正序[25, 32, 50, 98]去重倒序[98, 50, 32, 25]

 2.List的元素的属性值去重

Person p1 = new Person("张三", new BigDecimal("50.0"));Person p2 = new Person("王五", new BigDecimal("25.0"));Person p3 = new Person("李四", new BigDecimal("68.0"));Person p4 = new Person("赵六", new BigDecimal("17.0"));Person p5 = new Person("马八", new BigDecimal("25.0"));List<Person> list = new ArrayList<>();list.add(p1);list.add(p2);list.add(p3);list.add(p4);list.add(p5);List<Person> result = new LinkedList<>();for (Person person : list) { boolean b = result.stream().anyMatch(p -> p.getSalary().compareTo(person.getSalary())==0); if (!b) { result.add(person); }}System.out.println(result);打印结果:[{name='张三', salary=50.0}, {name='王五', salary=25.0}, {name='李四', salary=68.0}, {name='赵六', salary=17.0}]
点赞
收藏
评论区
推荐文章
我丢,去面试初级Java开发岗位,被问到泛型?
1、泛型的基础概念1.1为什么需要泛型cListlistnewArrayList();//默认类型是Objectlist.add("A123");list.add("B234");list.add("C345");System.out.println(list);
_dolphin _dolphin
2年前
[C#]ArrayList、string、string[]之间的转换
1、ArrarList转换为string\\:  ArrayListlistnewArrayList();  list.Add("aaa");  list.Add("bbb");  string\\arrString(string\\)list.ToArray(typeof(string));2、string\\转换
Wesley13 Wesley13
2年前
java8对集合的处理
publicstaticvoidmain(String\\args){List<StudentlistLists.newArrayList();list.add(newStudent("测试","男",18));list.add(newStudent("开发","男",20));list.add(n
Wesley13 Wesley13
2年前
Java Lambda 常用案例
List类的Stream处理:List<StringlistnewArrayList<String();list.add("djk");list.add("djk1");list.add("djk12");//maplistlist.stream().ma
Wesley13 Wesley13
2年前
JSON的使用
一.json常用转换方法1.listListlistnewArrayList();list.add("first");list.add("second");JSONArrayjsonArray2JSONArray.fromObject(list);
Wesley13 Wesley13
2年前
Java 删除List元素的正确方式
方式一:使用Iterator的remove()方法publicclassTest{publicstaticvoidmain(Stringargs){List<StringlistnewArrayList<();list.add("aa"
Wesley13 Wesley13
2年前
Java 笔记
 动态数组ArrayList<StringListnewArrayList<String();//定义动态数组List.add(temp);//添加字符串List<IntegerretnewArrayList<Integer();ret.add(i1);
Stella981 Stella981
2年前
Delphi中TStringList类常用属性方法详解
//TStringList常用方法与属性:varList:TStringList;i:Integer;beginList:TStringList.Create;List.Add('Strings1');{添加}List.Add(
Wesley13 Wesley13
2年前
JAVA中Collections.sort()实现List排序的公共方法和自定义方法
本文是受开源中国中的一篇文章启发而写(找不到连接了,所以暂时木法贴出来,一旦找到立马贴出来),个别内容参考了开源中国会员的讨论,感谢!1.java提供的默认list排序方法主要代码:List<StringlistnewArrayList();list.add("刘媛媛");list.add(
Wesley13 Wesley13
2年前
Java将List中的实体按照某个字段进行分组的算法
publicvoidtest(){List<UserlistnewArrayList<();//User实体测试用Stringid,name;//当前测试以id来分组,具体请按开发场景修改list.add(newUse
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k