我有一個List<POJO>
,我想從中提取數據,我感興趣的變量是:的Java 8拉姆達添加到HashMap中的列表,在一個HashMap
Environment: String
Application: String
Throughput: Double
有7個Environment
對象和每個Environment
擁有18 Application
對象,每個對象具有多個values
。
我試圖遍歷List<POJO>
,並在Hashmap<Environment.ToString, Hashmap<Applications.ToString, List<Double>>
我試圖用Java 8的lambda功能將這些值存儲;到目前爲止我的代碼:
private HashMap<String, List<BigDecimal>> appMap = new HashMap<String, List<BigDecimal>>();
private HashMap<String, HashMap> envMap = new HashMap<String, HashMap>();
for(POJO chartModel: List<POJO>) {
appMap.computeIfAbsent(chartModel.getName(), v -> new ArrayList<BigDecimal>())
.add(BigDecimal.valueOf(chartModel.getThroughput()));
envMap.put(chartModel.getEnvironment(), appMap);
}
首先,有沒有遍歷內Map
內List
使用Java8
一條捷徑?其次,我的代碼並不完全正確,因此當前地圖將所有Throughput
的值添加到它的Application
密鑰中,所以我最終得到了具有值列表的18個密鑰。
我需要做的是在我的envMap
我應該有7個Environment
對象,每個都具有其18個Application
對象和值,那麼將有總共126個Application
對象。這可以通過我嘗試它的方式來實現嗎?是否有Lambda方法來實現這一目標?
那麼,對於初學者來說,你只有一個'appMap'實例,並且這將被插入到'envMap'中7次,每個'Environment'都會被插入一次。 –