小编Prz*_*mek的帖子

Java <Streams> 如何根据列表的组件数对我的对象列表进行排序

我有 2 个 Java 类。一个是由 5 个变量组成的 Car 类。其中我有一个List设备变量。另一个类包含 Car 类对象的列表:List carlist。

我的任务是:我必须根据给定汽车拥有的设备项目的数量使用 Java 中的 Streams 对汽车对象列表进行排序。

我怎么做?我试图构建一个单独的方法来计算对象列表中的项目 - 但是在比较器中,我无法将对象作为此方法的参数。

这是我的代码的摘录:

private int countEquipmentItems (Car s){
    if (s == null){
        return 0;
    }
    int countEquipment = 0;
    List<String> a = s.getEquipment();
    for (int i = 0; i <a.size() ; i++) {
        countEquipment ++;
    }
    return countEquipment;
}
Run Code Online (Sandbox Code Playgroud)

我尝试在 Stream 中使用此方法:

public void sortbyEquipment (List<Car> carList){
    carList.stream()
            .sorted(Comparator.comparing(countEquipmentItems(Car s)));
    }
}
Run Code Online (Sandbox Code Playgroud)

我感谢任何帮助

java java-8 java-stream

5
推荐指数
1
解决办法
257
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1