繁体   English   中英

在 Java 中使用 ArrayList 来存储姓名和年龄

[英]Use of ArrayList in Java to store Name and Age

我想在 ArrayList 中添加 String 和 Integer 类型的值。

例如,我有一个数组列表,我想在单个 arralist 中添加人员的姓名和相应人员的年龄。

我怎样才能做到这一点。 我怎样才能得到这个? 实际上,我正在从数据库中检索数据,并希望将所有员工姓名和年龄保存在一个数组列表中。 像多维数组列表。

使用年龄和姓名创建一个人 class,然后创建该类型的 ArrayList。

class Person {
  private String mName;
  private int mAge;
  public Person(int age, String name) {
     mName = name;
     mAge = age;
  }
  public String getName() {
     return mName;
  }
  etc ........
}

ArrayList<Person> arr = new ArrayList<Person>();
arr.add(new Person(10, "joe"));

您应该创建一个 class 来代表一个人,然后将它们添加到列表中。 在列表中混合对象类型是一种不好的做法。 你可以从一个简单的人 class 开始:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

然后创建一个这样的列表:

List<Person> people = new ArrayList<Person>();

并将您从数据库中读取的人员添加到列表中:

people.add(new Person(name, age));

您可以使用简单的ArrayList并添加盒装类型intInteger以及String

你可以做一个人 Class

class Person{
 String name;
 int age;
 //Add the getteres and setters
}

然后如下声明一个 arrayList。

ArrayList<Person> p = new ArrayList<Person>();

然后为每个人创建一个人 object 并按如下方式填充 arrayList。

p.add(personObj);

您可以创建一个ArrayList<Object> IntegerString都是Object的子类,因此都可以添加到ArrayList<Object>中。

也就是说,在我看来你不太可能真的想要这样做。 ArrayList是一个列表。 如果您在列表中存储的东西在某种意义上不是同一种东西,这通常是一种难闻的气味(即:不良设计的标志)。

正如您所描述的那样,元素之间的对应关系表明您实际上想要一个员工对象列表,其中每个员工 object 都有一个名称和一个年龄。

如果名称是唯一的,另一种可能性是使用Map 如果您关心保留顺序,可以使用LinkedHashMap

class Employee{
int age;
String name;
//+acessor method
}

Lit<Employee> list = new ArrayList<Employee>();

为确保编译器不会抱怨,请使用 Generics 指定您想要将对象添加到 ArrayList; 这将允许您向其中添加 Integer 和 String 两种类型:

ArrayList<Object> myList = new ArrayList<Object>();

然后,您可以将任一类型的对象添加到其中。

但是,Java 是强类型的,因此需要在一个 ArrayList 中添加两种类型对我来说是一个设计问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM