laravel集合collect按两个或者多个字段排序测试

 

结果

结论

按多个字段排序需要链式链接上相应的规则字段,

越靠后的排序结果优先级越高

另:laravel集合的sortByDesc()方法相同

 

转载于:https://www.cnblogs.com/myyuanyuan/p/8665405.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中使用stream流按两个字段排序可以使用Comparator.comparing()和thenComparing()方法来实现。 下面是一个按两个字段排序的示例代码: ```java public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } } public class Main { public static void main(String[] args) { List<Person> people = new ArrayList<>(); people.add(new Person("Alice", 25)); people.add(new Person("Bob", 30)); people.add(new Person("Alice", 20)); people.add(new Person("Bob", 25)); List<Person> sortedPeople = people.stream() .sorted(Comparator.comparing(Person::getName).thenComparing(Person::getAge)) .collect(Collectors.toList()); for (Person p : sortedPeople) { System.out.println(p.getName() + " " + p.getAge()); } } } ``` 输出结果: ``` Alice 20 Alice 25 Bob 25 Bob 30 ``` 在上面的示例代码中,我们先定义了一个Person类。然后我们在main()方法中先创建了一个包含4个Person对象的people列表。 我们使用stream()方法将people列表转换为一个stream流,并使用sorted()方法对流进行排序。在sorted()方法中,我们使用Comparator.comparing()方法按照name字段进行排序,如果name相同,再使用thenComparing()方法按照age字段进行排序。最后使用collect()方法将排序后的流转换为一个列表。 最后我们遍历输出排序后的结果。 需要注意的是,使用stream流排序可能会产生一些额外的开销,因为它需要额外的计算和内存。因此,如果数据量很大,可能需要考虑使用其他的排序方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值