[英]Java create list has more field
一開始我為我的英語不好而煩惱:)
我想要創建新列表(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"); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.