我必須寫方法:填補HashMap中與作爲參數傳遞的組的元素
public Map<Robot, Integer> PickedUpForEachRobot(Set<Stuff> pickedUp)
其具有通過該組作爲參數傳遞給迭代並具有計數的東西量拾取由每個機器人並將其與其實例相關聯。
我做了什麼是這樣的:
public Map<Robot, Integer> PickedUpForEachRobot(Set<Stuff> pickedUp) {
final Map<Robot,Integer> map = new HashMap<>();
for(Stuff stuff : pickedUp){
Integer quantity = map.get(stuff.getPicker());
if(quantity!=null){
map.put(stuff.getPicker(), quantity);
}
}
return map;
}
我也有其他類:
public class Stuff {
private Robot picker;
public Robot getPicker() {
return this.picker;
}
}
和:
public class Robot {
private Set<Stuff> bunchOfStuff;
public Set<Stuff> getBunchOfStuff() {
return this.bunchOfStuff;
}
}
爲此我試圖合成,所以我希望我可以清楚無論如何。
所以我的問題是,當我做這個方法測試:
@Test
public void testRaccoltoPerMezzo() {
Statistics stats = new Statistics();
Stuff stuff1 = new ball();
Stuff stuff2 = new legoPiece();
Set<Stuff> set = new HashSet<>();
set.add(stuff1);
assertEquals(1,set.size());
Map<Robot,Integer> map = new HashMap<>();
map.put(stuff1.getPicker(),1);
assertEquals(map, stats.PickedUpForEachRobot(set));
}
失敗,它給我說:
java.lang.AssertionError: expected:<{null=1}> but was:<{}>
,我不明白爲什麼。有人能幫助我嗎?
首先感謝您的回答。你對如何解決這種情況有任何想法嗎?我問這是因爲我已經知道那條線總是返回null,但是我一直試圖用這種方法試圖解決這個問題太久了 – Flavio
不客氣。我不確定要了解您的需求。我認爲在PickedUpForEachRobot()中,這個想法是在Set of Stuff上迭代並獲取picker的數量。然後用這個數量更新地圖。但問題是我沒有看到模型中的數量。 – davidxxx
你認爲有可能問題是我必須填寫通過Stuff元素參數傳遞的集合嗎?因爲當我做stuff.getPicker()它總是讓我空。 – Flavio