按List集合中对象的某个属性倒序排序,取前五

1、排序

   // 根据设备数量倒序排列
            Collections.sort(resulCounttList, (a, b) -> (Integer.valueOf(b.getValue().toString()))
                    .compareTo(Integer.valueOf(a.getValue().toString())));

2、取Top5

  // 取top5
            if (resulCounttList.size() > 5) {
                resultList = resulCounttList.subList(0, 5);
            } else {
                resultList = resulCounttList;
            }

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Java 8的`Stream`流对对象集合对象创建时间倒序排序,你可以使用`Comparator`和`sorted`方法。假设你有一个包含对象集合,每个对象都有一个表示创建时间的属性。以下是一个示例: 假设你有一个名为`Person`的类,其包含一个名为`creationTime`的`Date`属性,用于表示对象的创建时间。你可以使用以下代码对`Person`对象集合进行按照创建时间倒序排序: ```java import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.stream.Collectors; public class PersonSorting { public static void main(String[] args) { List<Person> persons = new ArrayList<>(); persons.add(new Person("John", new Date(2022, 0, 1))); persons.add(new Person("Alice", new Date(2021, 4, 15))); persons.add(new Person("Bob", new Date(2021, 8, 30))); List<Person> sortedPersons = persons.stream() .sorted(Comparator.comparing(Person::getCreationTime).reversed()) .collect(Collectors.toList()); System.out.println("排序集合:" + persons); System.out.println("排序后的集合:" + sortedPersons); } } class Person { private String name; private Date creationTime; public Person(String name, Date creationTime) { this.name = name; this.creationTime = creationTime; } public Date getCreationTime() { return creationTime; } @Override public String toString() { return name; } } ``` 在上面的例子,首先创建了一个`Person`类,其包含了`name`和`creationTime`属性。然后创建了一个`persons`集合,并添加了一些`Person`对象。 使用`stream()`方法将集合转换为流,然后使用`sorted()`方法并传递一个按照`creationTime`属性排序的比较器。在这个例子,我们使用了`Comparator.comparing()`方法和方法引用(`Person::getCreationTime`)来指定按照`creationTime`属性进行比较。通过调用`.reversed()`方法,我们可以实现倒序排序。 最后,使用`collect(Collectors.toList())`方法将排序后的元素收集到一个新的列表。 在控制台上,你将看到排序排序后的集合输出结果。注意,这里使用了Java 8的日期类库,但请注意Java的年份是从1900开始计数的,所以需要对年份进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值