如何使用数组列表?[OOP]

0 java arraylist

实现Zoo类(及其测试类).动物园的名称和面积以米为单位.动物园可以有一个或多个动物.动物有ID,姓名,类型,年龄,性别.我们应该能够将新动物添加到动物园,移除动物并确定动物园中目前有多少动物.

这是Zoo类:

import java.util.ArrayList;

public class Zoo {
    String name;
    String area;
    ArrayList<Animal> animals;
    static int id;

    public Zoo(String name, String area) {
        this.name = name;
        this.area = area;
    }

    public void addanimal(animal ann) {
        animals.add(id, ann);
        id++;
    }
}

public class Animal {
    String name;
    String type;
    String age;
    String gender;

    public Animal(String name, String type, String age, String gender) {
        this.name = name;
        this.type = type;
        this.age = age;
        this.gender = gender;
    }
}
public class Test {

    public static void main(String[] args) {
        Zoo nozha = new Zoo("nozha", "100");
        Animal lion = new Animal("lion", "male", "20", "fine");
        nozha.addanimal(lion);
        Znimal tiger = new Animal("tiger", "male", "30", "ssc");
        nozha.addanimal(tiger);
        System.out.print(Zoo.id);
    }
}
Run Code Online (Sandbox Code Playgroud)

首先,我需要帮助功能(addanimal),因为当我打印(zoo.id)它不工作,我不知道如何删除动物请帮助我,我是编程的初学者,这是我第一次使用ArrayList和我从来没有问过

JB *_*zet 8

您需要将animals变量初始化为其默认值以外的值,即null:

private List<Animal> animals = new ArrayList<Animal>();
Run Code Online (Sandbox Code Playgroud)

再来看下的javadocjava.util.List,你会看到它包含的方法来添加和删除元素,以及它返回它的大小,并使得这样的id变量完全没有必要的方法.

另外,请注意javadoc中所有类如何以大写字母开头,并且所有方法都拼写在camelCase中(喜欢addAnimal()和不喜欢addanimal()).尊重这些约定:它们是代码可读性的一个非常重要的因素.

另外,为变量选择合适的类型.以米为单位的区域应为int或float或double,但不应为String.