起初我很抱歉我的英语不好:)
我想创建新列表(Arraylist, hashmap etc.. which is appropriate)
,例如这个列表有 6 个字段;
ArrayList<Integer, Integer, String, Integer, String, Integer> nData = new ArrayList<>();
我知道这是不正确的,但我需要列表,<int, int, String, int, String, int>
但是如何?谢谢你
创建一个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);
我认为最好的建议取决于您设计的细节和约束,但数据类型的顺序似乎是恒定的。因此,HashMap<int,Object[]>
或者 Hashtable<int,Object[]>
可能对您的目的有用。您可以在此处查看 HashMap 和 HashTable 之间的区别。
创建一个包含所需字段的新类,并创建该类的 ArrayList。
创建一个包含所有这些字段的类,比如 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);
使用 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");
}