https://blog.csdn.net/yiyihuazi/article/details/123681478
1、list的正序
List<Integer> list = new ArrayList<>();
list.add(50);
list.add(45);
list.add(25);
list.add(98);
list.add(32);
List<Integer> collect = list.stream().sorted().collect(Collectors.toList());
System.out.println("list<Integer>元素正序:" + collect);
打印结果:
list<Integer>元素正序:[25, 32, 45, 50, 98]
2、list的倒序
List<Integer> list = new ArrayList<>();
list.add(50);
list.add(45);
list.add(45);
list.add(98);
list.add(32);
List<Integer> collect = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
System.out.println("list<Integer>元素倒序:" + collect);
打印结果:
list<Integer>元素倒序:[98, 50, 45, 45, 32]
3、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("45.0"));
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
list.sort(Comparator.comparing(person -> person.getSalary()));
System.out.println(list);
打印结果:
元素的属性值正序:[{name='李四', salary=17.0}, {name='王五', salary=25.0}, {name='张三', salary=45.0}, {name='张三', salary=50.0}, {name='李四', salary=68.0}]
4、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("45.0"));
List<Person> list = new ArrayList<>();
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
List<Person> collect = list.stream().sorted(Comparator.comparing(Person::getSalary).reversed()).collect(Collectors.toList());
System.out.println("元素的属性值倒序:" + collect);
打印结果:
元素的属性值倒序:[{name='李四', salary=68.0}, {name='张三', salary=50.0}, {name='王五', salary=45.0}, {name='张三', salary=45.0}, {name='李四', salary=17.0}]
1. stream流根据年龄正序排序
resultList.stream().sorted(Comparator.comparing(User::getAge))
.collect(Collectors.toList());
1
2
2. stream流根据年龄倒序排序
在正序的基础上增加reversed
resultList = resultList.stream().sorted(Comparator.comparing(User::getAge)
.reversed()).collect(Collectors.toList());
1
2
3. stream流先按学生年龄降序排序,年龄相等的话,则按年级升级排序
resultList = resultList.stream().sorted(Comparator.comparing(User::getAge)
.reversed()
.thenComparing(Comparator.comparing(User::getGrade))
).collect(Collectors.toList());
1
2
3
4
4. stream流先按年龄降序排序,再按年级降序排序
resultList = resultList.stream().sorted(Comparator.comparing(User::getAge)
.reversed()
.thenComparing(Comparator.comparing(User::getGrade).reversed())
).collect(Collectors.toList());
相关推荐
由于Collections排序实际上是对字符串进行比较,然后对日期排序,但是有时候给的日期不是很规范,所以想把日期统一化, 这样用Collections进行升序排序
Java lambda Stream List过滤筛选、排序、分组(Java进阶)
主要介绍了java8 stream自定义分组求和并排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要是介绍在 JDK8中使用 stream 流的 groupingBy 方法源进行最大值分组、最小值分组、平均值分组、统计分组
实用方法,使用java8 stream对List 分组,去重,自定义排序
list of random 10 integers 4. each integer contains 8 digits 5. prints file generation timing statistics per file and total Step 2: Merge all numbers from some files if CLI parameter is “-s [foler_...
此方法的实现代码较为简洁,但缺点是 HashSet 会自动排序,这样新集合的数据排序就和原集合不一致了 4:TreeSet去重(无序) 比较遗憾的是,TreeSet 虽然实现起来也比较简单,但它有着和 HashSet 一样的问题,会自动...
使用 Java Stream 可以方便地进行过滤、映射、排序和聚合等操作。下面是一个简单的示例: 该示例将一个整数列表中的偶数筛选出来,并将它们加起来。 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); int ...
今天小编就为大家分享一篇关于JAVA JDK8 List分组获取第一个元素的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
下面小编就为大家带来一篇根据list中对象的属性去重和排序小结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了如何实现java8 list按照元素的某个字段去重,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
主要介绍了java实现把一个List集合拆分成多个的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。 熟悉Linux的同学对这种风格一定不陌生,因为它跟Linux的|管道符的思想如出一辙。上面这段话...
java8学习笔记基本用法创建测试实体,测试类1、根据字段分组2、根据字段排序3、根据字段去重4、根据条件过滤filter5、stream().map归并 基本用法 创建测试实体,测试类 创建测试对象DemoUser: public class ...
哈希值 LinkedHashSet TreeSet 自然排序Comparable 比较器排序Comparator Set集合 并发修改异常 LinkedList集合 ArrayList集合 List集合 Collection集合概述 冒泡排序 Object 异常 Math 包装类 Calendar类 ...
13.2 基本的Stream类别和Stream对象 144 13.3 文件存取 144 13.3.1 重定向 147 13.3.2 用于读写的Stream 147 13.4 String Stream class 148 13.4.1 Stream缓冲区迭代器示例 14 国际化 150149 15 空间配置器
,重点讲解Collection:集合框架体系List/Set/Map多种 实现和API ·玩转集合框架迭代器和HashCode和Equals重新排序 实战 ·实战teratori迭代器和自定义Comparable:排序接口 ·玩转ava操作文件File类常用操作 ·案例...
day05-迭代器,数据结构,List,Set ,TreeSet集合,Collections工具类 day06-Map集合,HashMapTreeMap,斗地主、图书管理系统,排序算法 day07-异常,线程的创建方式,,线程安全,线程同步 day08-线程状态,volatile关键字...
/** * jdk 1.8对于集合各种操作简化处理的学习 * (1)集合转为stream * (2)面向流的filter(有返回值... * (3)处理后的stream转为集合collect collectors.toList() Collectors.toSet(),Collectors.toMap(Perso