Я проверял этот вопрос, но он не отвечает на мой вопрос
Как получить минимальное и максимальное значение из Списка объектов с использованием Java 8 Найти максимум, минимум, сумму исреднее значение списка в Java 8
Моя проблема У меня есть вложенный список List, и я хочу получить один список.
У меня есть этот класс:
public class Competitor {
private final int type;
private final String name;
private final int power;
public Competitor(int type, String name, int power) {
this.type = type;
this.name = name;
this.power = power;
}
public int getType() {
return type;
}
public String getName() {
return name;
}
public int getPower() {
return power;
}
@Override
public String toString() {
return "Competitor{" + "type=" + type + ", name=" + name + ", power=" + power + "} ";
}
}
Теперь у меня есть List<List<Competitor>>
как:
List<List<Competitor>> anotherListOfListCompetitor = new ArrayList<>();
anotherListOfListCompetitor.add(new ArrayList<>(
Arrays.asList(new Competitor(1, "Cat 00", 93), new Competitor(2, "Dog 18", 40), new Competitor(3, "Pig 90", 90)))); //93 + 40 + 90 = 223
anotherListOfListCompetitor.add(new ArrayList<>(
Arrays.asList(new Competitor(1, "Cat 23", 20), new Competitor(2, "Dog 30", 68), new Competitor(3, "Pig 78", 32)))); //20 + 68 + 32 = 120
anotherListOfListCompetitor.add(new ArrayList<>(
Arrays.asList(new Competitor(1, "Cat 10", 11), new Competitor(4, "Cow 99", 90)))); //11 + 90 = 101
Теперь я хочу получить List<Competitor>
с минимальной суммой power
Свойство и другие List<Competitor>
с максимальной суммой.
Я знаю о сокращении ...
List<Competitor> someListCompetitor = //populate the list
int sumPower = someListCompetitor.stream()
.map(competitor -> competitor.getPower())
.reduce(0, (a, b) -> a + b);
Но возможно ли для List<List<Competitor>>
получение minListCompetitor
с минимальным sumPower
и anotherListCompetitor
с максимальным sumPower
?
List<Competitor> minListCompetitor = anotherListOfListCompetitor
.stream()... // wich sum power is 101
List<Competitor> maxListCompetitor = anotherListOfListCompetitor
.stream()... // wich sum power is 223
Как получить эти списки?