-4
私はcats
のリストを持っており、cats
を同じcolour
にグループ化し、それらをowner
でグループ化したいと考えています。 Java 8でこれをどうやって行うのですか?Java 8ストリームを使用して複製を収集する
public class Cat{
private String name;
private Owner owner;
private String color;
public Cat(String name,Owner owner,String color){
this.name=name;
this.owner= owner;
this.color= color;
}
}
public class Owner{
private String name;
public Owner(String name){
this.name= name;
}
}
私はデータを以下しているとしましょう:
Owner owner1= new Owner("John"); Owner owner2= new Owner("Smith");
Owner owner3= new Owner("Scott");
Cat cat1 = new Cat ("Cat1",owner1,"Brown");
Cat cat2 = new Cat ("Cat2",owner2,"Black");
Cat cat3 = new Cat ("Cat3",owner1,"Brown");
Cat cat4 = new Cat ("Cat4",owner3,"White");
List<Cat> catList = new ArrayList<>();
catList.add(cat1);
catList.add(cat2);
catList.add(cat3);
catList.add(cat4);
を私はowner3
は1匹の猫を持っている、owner2
は1を持って、2匹の猫を持っているowner1
のマップを期待しています。適切なgetterメソッドと
あなたは「同じ色で猫を収集する」とはどういう意味ですか。色と所有者でグループ化するか、特定の色でフィルタリングしたいですか? – Mico
まず、単純なループであなたのタスクを実行しようとすると、 'Stream' APIに変換できるアルゴリズムが見えます。あなたはこれを次のようにしなければならないようです:http://stackoverflow.com/a/33254512/4105457 – Flown