创建具有固定列数的动态数组

时间:2015-04-25 18:19:50

标签: java multidimensional-array

我需要创建一个二维表,我知道它的列数,但我不知道行数。行将通过代码生成并添加到表中。 我的问题是,你认为java中的哪种数据结构最适合这些功能?

2 个答案:

答案 0 :(得分:2)

您应该为每个列创建一个包含字段的类。例如,这是一个if(Obj.GetType() == typeof(ClassName)) 类。

Person

然后您可以创建public final class Person { private final String firstName; private final String lastName; private final int age; public Person(String firstName, String lastName, int age){ this.firstName = firstName; this.lastName = lastName; this.age = age; } public String firstName() { return firstName; } public String lastName() { return lastName; } public int age() { return age; } } 。行数将根据需要增加。

例如

ArrayList<Person>

答案 1 :(得分:2)

有几种选择:

  • 创建一个域类并将其实例放入ArrayList,如@pbabcdefp建议
  • 将原始数组放入ArrayList

    List<int[]> list = new ArrayList<>();
    list.add(new int[] {1, 2, 3});
    list.add(new int[] {4, 5, 6});
    
  • 使用一些特殊的数据结构,例如来自TableGoogle Guava

    Table<Integer, String, Object> table = HashBasedTable.create();
    // row 1
    table.put(1, "Name", "John");
    table.put(1, "Age", 22);
    // row 2
    table.put(2, "Name", "Mike");
    table.put(2, "Age", 33);