Javaで2つのクラスがあります。1つは、5つの変数で構成されるCarクラスです。その中には、リスト変数があります。別のクラスには、Carクラスオブジェクトのリストが含まれています。Listcarlist。
私の仕事は、指定された自動車の装備品の数量に基づいて、Javaのストリームを使用して自動車オブジェクトのリストをソートする必要があります。
それ、どうやったら出来るの?オブジェクトのリストの項目をカウントする別のメソッドを作成しようとしましたが、その後、コンパレータ内で、このメソッドの引数としてオブジェクトを配置できません。
これが私のコードの抜粋です:
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;
}
そして、私はストリーム内でこのメソッドを使用しようとしました:
public void sortbyEquipment (List<Car> carList){
carList.stream()
.sorted(Comparator.comparing(countEquipmentItems(Car s)));
}
}
助けてくれてありがとう
countEquipmentItems
機器の数を数えるのにその方法は必要ありません。ただ使用するcar.getEquipment().size()
:
public void sortbyEquipment (List<Car> carList){
carList.stream()
.sorted(Comparator.comparing(car -> car.getEquipment().size()))
...
}
もちろん、それをComparator
直接に渡すことができCollections.sort()
ますStream
。これにより、を作成せずにリストがソートされます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加