java - 如何使用数组列表? [哎呀]

标签 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);
    }
}

首先,我需要函数(addanimal)的帮助,因为当我打印(zoo.id)时它不起作用,我不知道如何删除动物,请帮助我,我是编程初学者,这是我第一次使用ArrayList 和我以前从未问过

最佳答案

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

private List<Animal> animals = new ArrayList<Animal>();

然后看javadocjava.util.List ,您将看到它包含添加和删除元素的方法,以及返回其大小的方法,因此完全不需要 id 变量。

另外,请注意 javadoc 中所有类如何以大写字母开头,所有方法均以驼峰式拼写(如 addAnimal() 而不是 addanimal() )。尊重这些约定:它们对于代码的可读性来说是一个非常重要的因素。

此外,为您的变量选择适当的类型。以平方米为单位的面积应该是 int 或 float 或 double,但不是 String。

关于java - 如何使用数组列表? [哎呀],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12493548/

相关文章:

java - 需要帮助来理解 Java 中 ArrayList 的反序列化

Java Swing 使用文本文件中的数据填充多个 JTextField

java - 如何使用 JNI 将 Java 中的 ArrayList<Integer> 转换为 C++ int 数组?

java - 当我运行一个单线程 Java 程序时,为什么在操作系统级别有多个线程?

java - 为私有(private)方法的 NullPointerException 编写 junit 测试用例时出现问题

java - 使用增强的 for 循环打印数组列表 - 错误 : cannot find symbol and variable already defined in method

java - java中如何从Map中读取Arraylist的值

java - 使用 POST 请求将文件发送到 REST 服务

java - Android - 广播接收器不记录消息

java - AWS MQTT Websocket,经过身份验证的访问受到限制