-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);
我期待的owner1
有兩個貓圖,owner2
有1個,owner3
有1家貓。
你的意思是什麼與「收集與相同顏色的貓」。您想按顏色和所有者進行分組,或者您想按特定顏色進行過濾? – Mico
首先嚐試使用普通循環執行任務,以便可以看到可以轉換爲「Stream」API的算法。看起來你必須這樣做:http://stackoverflow.com/a/33254512/4105457 – Flown