java - 如何使用集合对象打印所有动物
问题描述
我将如何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;
}
}
解决方案
您可以使用 for 循环:
for (Animal a: animals) {
System.out.println(a);
}
我宁愿更简洁:使用 lambda。
animals.stream().forEach(System.out::println);