3
我一直在尋找我需要做的事情,但我無法將它們放在一起。首先,這是我的目的,簡單地說:將映射列表轉換爲映射到原始數組
Object1
Object2
Map<String, Double>
我需要做的是,開始的Object1
列表,獲取給定一個特定的鍵映射的值double[]
(中的所有對象列表在地圖中具有相同的N個鍵)。
這裏是我開始嘗試:
myList.stream().map(Object1::getObject2).map(Object2::getMyMap).map(m -> m.get(key).collect(Collectors.toCollection(ArrayList::new))
我不知道如何從這裏到基本數組。如果目前爲止這很好,我該從哪裏出發?如果有更好的方法來做這件事,我願意接受建議。任何幫助表示讚賞,謝謝。
慎用'null'值。 – lexicore
要不拋出,請執行:myList.stream()。map(o - > o.getObject2()。getMyMap()。get(key))。filter(d - > d!= null).mapToDouble(Double :: doubleValue).toArray()' – Andreas
根據OP的描述,拋出可能更合適。如果其中一個映射遺漏了'key',則數據無效,代碼應該快速失敗,而不是返回更短的數組。 – Misha