У меня есть 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 в функции лямбда; мой код до сих пор:
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);
}
Во-первых, есть сокращенный способ перебрать List
во внутренней Map
с помощью Java8
?
Во-вторых, мой код не совсем прав, поэтому в настоящее время карта добавляет все значения Throughput
в свой Application
ключ, поэтому я получаю 18 ключей со списком значений.
Что мне нужно сделать, это в моем envMap
я должен иметь 7 Environment
объектов, каждый из которых имеет свои 18 Application
объектов и ценность, так что будет 126 Application
объектов в целом. Может ли это быть достигнуто так, как я пытаюсь это сделать, есть ли способ Лямбды достичь этого?
Ну, для начала у вас есть только один экземпляр 'appMap', и это будет вставляться в' envMap' 7 раз, один раз для каждой «Среда». –