我有一个List<POJO>
,我想从中提取数据,我感兴趣的变量是:
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);
}
首先,在Java8中是否有一种简便的方法可以迭代内部Map中的List?
其次,我的代码还不太正确,所以当前Map将所有的Throughput值添加到它的Application键中,这样我最终会得到18个带有值列表的键。
我需要做的是在envMap中应该有7个Environment对象,每个对象都有它的18个Application对象和值,所以总共会有126个Application对象。 我尝试使用这种方式来完成它,是否可以实现,是否有一种Lambda的方式来实现它?
appMap
实例,这将被插入到envMap
中 7 次,每个Environment
都会插入一次。 - Erick G. Hagstrom