使用不同的数据类型创建二维ArrayList

时间:2015-03-12 08:11:29

标签: java arraylist

所以我想使用ArrayLists为列和行创建一种表。它就像另一个ArrayList中的ArrayList。列的ArrayList(每个列具有不同的数据类型),其中每列也是一个ArrayList,保存为该列提到的类型的数据。

我真的可以使用你的帮助,我怎样才能制作这种表格,如何处理更新信息。谢谢!

1 个答案:

答案 0 :(得分:0)

你可以像这样创建一个这样的表:

List<List<?>> table = new ArrayList<>();

这是你要求的,但我不认为这种结构是有用的。您必须为表的每一列创建一个新的ArrayList。并且一列中的数据应始终具有相同的类型。否则你永远无法获取单元格中的数据,因为你不知道它必须被铸造的类型。作为示例,请查看此表:

name  | age
------+-----
alice | 25
------+-----
bob   | 30

使用lists-sturcture,可以像这样创建表:

table.add(new ArrayList<String>());
table.add(new ArrayList<Integer>());

添加和访问人员不舒服且容易出错:

table.get(0).add("alice");
table.get(1).add(25);
table.get(0).add("bob");
table.get(1).add(30);

String nameOfAlice = (String) table.get(0).get(0);
Integer ageOfAlice = (Integer) table.get(1).get(0);
String nameOfBob = (String) table.get(0).get(1);
Integer ageOfBob = (Integer) table.get(1).get(1);

如果为行创建一个类,则可以更加有效:

public class Person {

    private String name;

    private int age;

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

    // Getters & setters

}

声明表:

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

现在添加和访问一个人就容易多了:

persons.add(new Person("alice", 25));
persons.add(new Person("bob", 30));
Person alice = persons.get(0);
Person bob = persons.get(1);