我必須執行方法maxPricePerProductType
,它返回產品類型出價的最高價格,產品按字母順序排序。不考慮沒有出價的產品。該方法的原型爲:operations on sortedMap
public SortedMap<String, Integer> maxPricePerProductType() { //use toMap
return null;
}
我的班是
public class GroupHandling {
private Map<String, Group> groups = new HashMap<>();
public SortedMap<String, Integer> maxPricePerProductType() { //use toMap
return null;
}
}
public class Group {
private String name;
String productType;
Map<String, Bid> bids = new HashMap<>();
public String getProductType() {
return productType;
}
}
public class Bid {
String name;
Group g;
int price;
public int getPrice() {
return price;
}
public String getProductType(){
return g.productType;
}
}
每個小組有興趣購買某種類型的產品,並在地圖bids
註冊,該集團必須的選項購買產品。例如Group G1
想要購買智能手機,他們有3個出價:B1,B2和B3。 B1費用10,B2 15和B3 7. G2也想購買智能手機。它有2個投標。 B4的成本爲5,B5的成本爲20.因此,我必須採用B1,B2,B3,B4和B5(因爲它們都是針對同一產品類型的所有出價),並添加到已排序的地圖B5中作爲關鍵字,並將其作爲值20。簡而言之,我需要從每個組中獲取出價,按產品類型對它們進行分組,並將最高價格的產品添加到已排序的地圖中。 這就是我試圖做的:
public SortedMap<String, Integer> maxPricePerProductType() { //use toMap
return groups.values().stream().
flatMap(g -> g.bids.values().stream())
.
;
}
但我不知道該怎麼繼續,或者,如果這部分是正確的。
這是一個有點不清楚。地圖中的字符串是什麼?組? (G1,G2等)出價? (B1,B2等)您如何知道這些出價來自同一組或同一產品?這只是首字母嗎?你說,「沒有出價的產品不被考慮。」他們是否完全缺席了地圖,或者表示爲映射爲null或零的字符串? –
地圖的關鍵應該是什麼?產品類型或出價名稱?我問,因爲你說它應該是出價的名稱,但那麼你怎麼知道出價屬於哪種產品類型? –
@DavidConrad不幸的是練習的內容有點不清楚。不過,我認爲產品類型與團隊是密切相關的,例如,如果只有一個團隊想要購買鞋子,而且它沒有任何出價,這意味着我不能考慮鞋子,並且他們不在地圖。地圖的關鍵是出價的名稱,正如我在下面寫的,價值是出價的價格 –