簡體   English   中英

Java創建列表具有更多字段

[英]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);
  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"); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM