我有一個Things
的列表,其中每個列表都有一個類別(一個int
)。我想結束的是一個Map,其中關鍵是類別,並且值是該類別的所有Things
的列表。目前我必須手動完成這項工作,所以我想知道是否有某種我不知道的類型。Java鏈式收集圖
目前我做類似如下:
List<Thing> things = thingGenerator.generateTheThings();
Map<Integer,List<Thing>> categoriesOfThing = new TreeMap<Integer,List<Thing>>();
for(Thing thing : things) {
int thingCategory = thing.getCategory();
List<Thing> oneCategoryOfThing;
if(categoriesOfThing.containsKey(thingCategory) {
oneCategoryOfThing = categoriessOfThings.get(thingCategory);
}
else {
oneCategoryOfThing = new ArrayList<Thing>();
}
oneCategoryOfThing.add(thing);
categoriesOfThing.put(thingCategory,oneCategoryOfThing);
}
for(int i = 0; i < numberOfCategories; i++) {
List<Thing> similarThings = categoriesOfThing.get(i);
foo(similarThings);
}
我想什麼可以做的東西有點像以下:
List<Thing> things = thingGenerator.generateTheThings();
ChainedMap<Integer,Thing> categoriesOfThing = new ChainedMap<Integer,Thing>();
for(Thing thing : things) {
categoriesOfThing.add(thing.getCategory(), thing);
}
for(int i = 0; i < numberOfTypes; i++) {
List<Thing> similarThings = categoriesOfThing.get(i);
foo(similarThings);
}
很像Apache MultiKey允許爲了在地圖中使用多個鍵,我想要在List
中檢索多個值。
是你的事情的模板類?即'東西' –
Wug
2012-08-06 14:21:39
不,它只是包含數據和一些簡單的方法。 – Edd 2012-08-06 14:27:10
好的,所以當你說「這個值是所有」那類*類型*的事物「的列表時,你的意思是你按價值而不是按類型查找?你的措辭讓我覺得你正在尋找類似於'Map,List >'(這可能不是正確的語法) –
Wug
2012-08-06 14:31:41