无法弄清楚如何在特定建筑物的列表中读出动物的平均重量。
我写了另一种方法来获取每种动物的动物名称,所以我知道我的坚持是有效的。
出色地:
public class Zoo {
private List<Animal> animals;
private List<Building> buildings;
public Zoo() {
this.animals = new PersistencyController().giveAnimals();
this.gebouwen = new PersistencyController().giveBuildings();
}
public List<Animal> giveAnimalsByKind(String kindName) {
return animals.stream().filter(animal -> animal.getKind().getName() == kindName).sorted(Comparator.comparing(Animal::getWeight)).collect(Collectors.toList());
}
public double giveAvgWeightForAnimalsInBuilding(String buildingName) {
return animals.stream().collect(Collectors.averagingDouble(Animal::getWeight));
}
}
动物:
public class Animal implements Serializable {
private int nr;
private String name;
private double weight;
private Kind kind;
public Animal(int nr, String name, double weight, Kind kind) {
this.nr = nr;
this.name = name;
this.weight= weight;
this.kind= kind;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
}
建筑:
public class Building{
private String naam;
private int capaciteit;
private final List<Animal> animals = new ArrayList<>();
public Building(String naam, int capaciteit) {
this.naam = naam;
this.capaciteit = capaciteit;
}
}
我想获得每个建筑物的动物的平均重量,所以我的想法是传递建筑物的名称。每个 Building 对象都存储一个动物列表,我需要 building 对象,因为它存储了建筑物的名称,但我不知道如何使用流访问它。我知道在我发布的代码中,我实际上还没有使用 buildingName,但那是因为我什至无法正常获得动物的平均体重。weight 在 Animal 中存储为 double 并且我的坚持正在发挥作用,因为我已经以其他方式对此进行了测试。任何对流有经验的人都将不胜感激,解释如何通过构建进行过滤并得到这个平均权重。
至尊宝的传说
相关分类