我将如何使用集合对象打印所有Animals
:
Collection<Animal> c = animals.values();
从技术上讲,我已经使用entrySet进行了此操作,但这是一种更高级的方法,这不是我需要做的。
如何使用不带for each loop
的简单entrySets
集合对象打印所有动物?
对此将提供任何帮助或建议,谢谢! :)
动物园课:
public class MyZoo
{
private String zooId;
private int nextAnimalIdNumber;
private TreeMap<String, Animal> animals;
private Animal animal;
public MyZoo(String zooId)
{
this.zooId = zooId.trim().substring(0,3).toUpperCase();
nextAnimalIdNumber = 0;
animals = new TreeMap<String, Animal>();
}
public void addAnimal(Animal animal)
{
animals.put(animal.getName(), animal);
this.animal = animal;
}
public void printAllAnimals()
{
Collection<Animal> c = animals.values();
}
}
动物类:
public class Animal
{
private String id;
private String species;
private String name;
public Animal(String species, String name, MyZoo owner)
{
id = owner.allocateId();
this.species = species;
this.name = name;
}
public String getId()
{
return id;
}
public String getName()
{
return name;
}
public String getSpecies()
{
return species;
}
public String toString()
{
return id + " " + name + ": a " + species;
}
}
答案 0 :(得分:1)
您可以使用for循环:
for (Animal a: animals) {
System.out.println(a);
}
我希望更简洁:使用lambda。
animals.stream().forEach(System.out::println);
答案 1 :(得分:0)
使用Streams
:
public void printAllAnimals(){
animals.values().stream().forEach(System.out::println);
}
使用经典for each loop
public void printAllAnimals(){
for (Animal ani: animals.values()) {
System.out.println(ani);
}
}