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());
相关推荐
本文将深入探讨如何使用Stream API对日期进行排序。日期排序在数据分析、日志处理、报表生成等场景中非常常见。下面我们将详细讨论相关知识点。 首先,我们需要了解Java中的日期时间API。在Java 8之前,我们通常...
本篇文章将深入探讨如何在`List<String>`中实现日期的升序排序。在实际应用中,我们经常遇到日期字符串格式不一致的情况,这使得直接使用`Collections.sort()`方法进行排序可能会出现问题。为了解决这个问题,我们...
在实际开发中,我们还可以使用 Java 8 的流(Stream)API 对 `List` 进行排序,这种方式更加简洁和灵活。 ```java List<Integer> numbers = new ArrayList(Arrays.asList(1, 3, 2, 4)); numbers = numbers.stream()...
2. **中间操作**:`Stream` API包含许多中间操作,如`filter()`用于过滤元素,`map()`用于转换元素,`distinct()`用于去除重复项,`sorted()`用于排序。这些操作不会立即执行,而是形成一个操作链。 3. **终止操作*...
可以考虑使用并行流(Parallel Stream)或线程池来加速排序过程,但要注意并发修改集合可能导致的并发问题。 总结起来,"list集合树状排序"是将具有层级关系的数据进行预处理,使其在前端以树形结构展示时能正确...
Java lambda Stream List过滤筛选、排序、分组(Java进阶)
在Java编程中,对List进行多个排序和查询条件的处理是一项常见的任务,特别是在处理数据集合时。本篇文章将深入探讨如何使用Java实现这些操作,并基于给出的`GroupFilterSortUtils.java`文件,我们可以推断这是一个...
Map, List<Person>> peopleByAge = people.stream() .collect(Collectors.groupingBy(Person::getAge)); ``` 2. **排序**: Java集合框架提供两种主要的排序方式:`Collections.sort()`方法和流API的`sorted()`...
"Java集合某个字段按照中文拼音排序" Java集合某个字段按照中文拼音排序是Java开发中经常遇到的问题。对Java集合中的某个字段按照中文拼音排序可以使用多种方法,本文将介绍两种常见的方法。 方法一:使用...
Java中List对象列表实现去重或取出及排序的方法 ...去重和排序List对象列表可以使用多种方法,包括重写equals和hashCode方法,使用HashSet,使用Java 8的Stream API等。根据实际情况选择合适的方法来实现。
4. 多功能:扩展StreamList,支持长按操作、拖拽排序等功能,增强用户体验。 总结,实现“StreamList横向流式布局点击删除”的功能需要理解Android布局系统,熟练掌握自定义ViewGroup、Adapter以及事件监听机制。...
List<Long> idList = userList.stream().map(User::getId).collect(Collectors.toList()); ``` 这里,`User::getId` 是方法引用来获取每个用户的 ID,然后 `collect()` 方法将结果收集到一个新的 `List<Long>` 中...
Java8 Stream 自定义分组求和并排序的实现 Java8 Stream 自定义分组求和并排序的实现是 Java8 中一个非常重要的知识点,该知识点的实现可以帮助开发者快速地实现分组求和并排序的操作,从而提高开发效率和代码质量...
Java集合框架中的`List`接口提供了一个`sort(Comparator<? super E> comparator)`方法,可以接受一个比较器(Comparator)来定义自定义的排序规则。默认情况下,Java使用自然排序,即按照字符串的Unicode值进行排序...
如果我们想要将List转换为Map,并对键进行自然排序,我们可以使用TreeMap来实现: Map, String> mapOfEmployees = employees.stream().collect( Collectors.toMap( e -> e.getEmpId(), e -> e.getEmpName(), ...
不同于传统的集合类(如List、Set等),Stream API支持更加灵活的数据处理方式,使得开发人员能够以声明式的方式来处理数据。 **Stream** 是一种对数据源进行各种高效聚合操作的机制,它强调的是数据的流动性和处理...
Stream<String> parallelStream = list.parallelStream(); // 并行流 ``` 2. **通过数组创建**:使用`Arrays.stream(T[] array)`方法。 ```java int[] array = {1, 3, 5, 7, 8}; IntStream stream1 = Arrays....
在上面的代码中,我们首先将 Map 转换为一个 Stream,然后使用 sorted() 方法对 Key 进行排序,接着使用 map() 方法将每个 Entry 转换为一个 Person 对象,最后使用 collect() 方法将 Stream 转换为一个 List 对象。...
* sorted:用于返回排序后的流,例如:`List<Person> people = Arrays.asList( new Person(30, "Alice"), new Person(25, "Bob"), new Person(30, "Charlie"), new Person(25, "David")); List<Person> sortedPeople...
将`DataSet`转换为`List`不仅可以提升数据处理的灵活性,还能简化后续的数据操作流程,如数据筛选、排序等。通过上述方法,开发者能够更加专注于业务逻辑的实现,而无需过多关注底层数据格式的转换细节,极大地提高...