首页 > 解决方案 > 如何使用集合对象打印所有动物

问题描述

我将如何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;
   }
}

标签: javacollections

解决方案


您可以使用 for 循环:

for (Animal a: animals) {
    System.out.println(a);
}

我宁愿更简洁:使用 lambda。

animals.stream().forEach(System.out::println);

推荐阅读