0

起初我很抱歉我的英语不好:)

我想创建新列表(Arraylist, hashmap etc.. which is appropriate),例如这个列表有 6 个字段;

ArrayList<Integer, Integer, String, Integer, String, Integer> nData = new ArrayList<>();

我知道这是不正确的,但我需要列表,<int, int, String, int, String, int> 但是如何?谢谢你

4

5 回答 5

5

创建一个Class包装所有这些字段的,并将此类的实例添加到ArrayList.

例如:

public MyClass {
  private Integer field1;
  private Integer field2;
  private String field3;
  private Integer field4;
  private String field5;
  private Integer field6;

  // constructor

  // getters/setters
}

接着:

List<MyClass> nData = new ArrayList<MyClass>();
MyClass instance = new MyClass(1, 2, "String1", 4, "String2", 5);
nData.add(instance);
于 2012-09-03T13:02:19.267 回答
1

我认为最好的建议取决于您设计的细节和约束,但数据类型的顺序似乎是恒定的。因此,HashMap<int,Object[]>或者 Hashtable<int,Object[]>可能对您的目的有用。您可以在此处查看 HashMap 和 HashTable 之间的区别。

于 2012-09-03T13:09:48.840 回答
0

创建一个包含所需字段的新类,并创建该类的 ArrayList。

于 2012-09-03T13:01:46.710 回答
0

创建一个包含所有这些字段的类,比如 MyClass,如下所示:-

class MyClass
{
  Integer a;
  Integer b;
  String c;
  Integer d;
  String e;
  Integer f;
}

之后ArrayList像这样创建:-

ArrayList<MyClass> nData = new ArrayList<MyClass>();

您可以将列表中的值添加为:-

MyClass m = new MyClass(1,2,"abcd",3,"bcde",4);
nData.add(m);
于 2012-09-03T13:04:06.147 回答
0
  1. 创建包含这些字段的类,或
  2. 使用 Integer 而不是 int,并创建 List,然后将其转换为所需的类型

    List<Object> list = new ArrayList<Object>();
    for (Object o : list)
    {
    if (o instanceof Integer)
    System.out.println( "" + ((Integer) o).intValue() + " is integer");
    else 
    System.out.println( "" + ((String) o) + " is String");
    }
    
于 2012-09-03T13:08:23.230 回答