我有一个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'都会被插入一次。 –