Предположим, у меня есть список стен listOfWalls и каждый объект стены имеет следующую иерархию:
wall -> wallType -> wallEntry(list of wall materials ) -> wallMaterial -> wallMaterialType(enum type),
, поэтому для получения wallMaterialType какой-либо стены в этом списке я бы go хотел
wall.getWallType().getWallEntry().getWallMaterial().getWallMaterialType();
Теперь класс Wall имеет также следующие параметры: width
и height
, которые, умноженные вместе, получают площадь стены, вызывая мою функцию getWallArea()
из класса Wall.
Что Я хотел бы добиться, чтобы получить площадь всех wallMaterialTypes из списка вычисленных стен, поэтому, например, предположим, что у нас есть 2 стены:
- Стена 1 со следующими wallMaterialTypes: Brick, Plaster, Wood и wallArea () 35 кв. метров.
- Стена 2 со следующими типами wallMaterialTypes: Hay, Plaster и wallArea () 105 кв. м.
Что бы я хотел получить это:
BRICK: 35 square meters.
Plaster: 140 square meters.
Wood: 35 square meters.
Hay: 105 square meters.
Мой код до сих пор выглядит примерно так, где я вытащил для каждого
Map<WallType, Double> getIt = listOfWalls.stream()
.collect(groupingBy(Wall::getWallType, Collectors.summingDouble(Wall::getWallArea)));
Оттуда я не знаю, как go? Помощь оценена.