2017-12-03 12 views
1

配列リストを使用する必要がありますが、必要な行数はわかりませんが、2列が必要です。私はそのような配列リストを作成し、両方の列に追加し、両方の列からデータを読み込む方法が不明です。両方の列には整数が含まれます。2列のJava ArrayList

ArrayList<Arraylist<Integer>> name = new ArrayList<ArrayList<Integer>>(); 

が、私は両方の列に追加する方法の説明を見つけることができます:私が見てきた

は、いくつかは示唆しています。

私も見てきました:

ArrayList<Integer[][]> name = new ArrayList<Integer[][]>(); 

とし、角括弧の数の異なるバリエーションを。おかげさまで

答えて

1

何か:

public MyObject { 
    Integer integer1; 
    Integer integer2; 
} 


List<MyObject> myObjList = new ArrayList<>(); 

MyObject mo = new MyObject(){ 
... 

myObjList.add(mo); 
1

あなたは

  • 地図を試してみて、値
  • タプルのリストを保持するためのキーと値を使用することができます
  • あなたは

あなたはdidnの提案として、リストのリストあなたが実際にやりたいことについて十分な情報を提供していませんが、Listをベースとして使用する必要がある場合は、通常、それぞれが2つの値を保持するカスタムTupleオブジェクトのリストを使用します。このような

+0

、最初の列は1つのArrayListからのインデックスを格納し、2番目の列は2番目のArrayListからのインデックスを格納します。列内の整数の多対多の関係になります。ありがとうございました。 –

+0

その場合、単にタプルのリストを作成してください。タプルはそれぞれ2つの整数を保持する単なるクラスであり、それをインデックスと呼ぶことができ、フィールドは整数xと整数yになります。便利なコンストラクタを追加すると完了です。あなたはそれが変わらないようにするためにフィールドを最終的にすることを検討してください。 –

1

Javaはオブジェクト指向言語である、なぜArrayList<Column>を作成していませんか? あなたの要件をカバーするクラスColumnを作成することができます:セッターとゲッターを持つことができます。Integer以外のタイプをサポートする必要がある場合は、それを生成することができます。たとえば:

class Column<T> { 
    private T value; 

    public Column(T value) { 
     this.value = value; 
    } 

    public getValue() { 
     return this.value; 
    } 
} 

は、その後、あなたが宣言:

List<Column<Integer>> list = new LinkedList<>(); 
list.add(new Column<Integer>(5)); 
System.out.println(list.get(0).getValue()) 
-1

をあなたは基本的にInteger型のArrayListのを保持しているのArrayListを作成する必要があります。これらのArrayListsの2つをメイン配列リストに追加できます。

List<List<Integer>> myList = new ArrayList<>(); 
List<Integer> x = new ArrayList<>(); 
x.add(5); 
x.add(6); 

List<Integer> y = new ArrayList<>(); 
y.add(5); 
y.add(6); 

myList.add(x); 
myList.add(y); 

この答えをオフに基づいて:

How do I declare a 2D String arraylist?

0

あなたが行と呼ばれるシンプルなPOJOクラスを作成してみてくださいとcolumn1のとcolumn2のように2つの変数を持つことができます。次に、このRowオブジェクトをリストに追加します。

0

例どのように行うにはあなたのような2次元構造の使用リストを作成:

List<List<Integer>> names = new ArrayList<>(); 

     List<Integer> row = new ArrayList<>(); 

     row.add(1); // first column 
     row.add(2); // second column 

     names.add(row); // add row with column 


     System.out.println(names.get(0).get(0)); // get first column from first row 
     System.out.println(names.get(0).get(1)); // get second column form first row 

しかし、最善の方法は、このようなオブジェクトのカスタム使用している:私は整数を格納するためのリストを使用したい

class CustomRow { 

private int col1; 
private int col2; 

// getters and setters 

} 


List<CustomRow> tables; 
CustomRow cr = new CustomRow(); 
cr.setCol1(1); 
cr.setCol2(2); 
tables.add(cr);