Java で int 配列の ArrayList を取得する

Mohammad Irfan 2023年10月12日
  1. int 型の ArrayList を作成する
  2. ArrayList のインデックスに整数要素を追加する
  3. インデックスを使用して ArrayList 要素にアクセスする
  4. int 配列の ArrayList
  5. ArrayList から int 配列要素にアクセスする
  6. ArrayLists の ArrayList
  7. まとめ
Java で int 配列の ArrayList を取得する

このチュートリアルでは、Java で int の ArrayList を取得する方法を紹介し、トピックを理解するためのサンプルコードをいくつかリストします。

ArrayList は動的またはサイズ変更可能な配列です。これは、Java のコレクションフレームワークの一部です。ArrayList は、通常の配列の固定サイズの問題を克服するために使用されます。このチュートリアルでは、int の ArrayList を作成する方法を学習します。

int 型の ArrayList を作成する

ArrayList またはその他のコレクションは、int などのプリミティブデータ型を格納できません。以下に示すコードを書くと、コンパイルエラーが発生します。

public class Demo {
  public static void main(String[] args) {
    ArrayList<int> arrList;
  }
}

出力:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	Syntax error, insert "Dimensions" to complete ReferenceType
	at snippet.Demo.main(Demo.java:7)

代わりに、ラッパークラスを使用してプリミティブを ArrayList に格納します。各プリミティブデータ型には、同じ型のオブジェクトを表す対応するラッパークラスがあります。int データ型の場合、ラッパークラスは整数と呼ばれます。したがって、int の ArrayList を作成するには、その型として Integer ラッパークラスを使用する必要があります。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
  }
}

クラスの add() メソッドを使用して、ArrayList に整数を追加できるようになりました。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
  }
}

ArrayList は、通常の配列と同様に、ゼロベースのインデックス付けに従います。add() メソッドでオブジェクトを追加するインデックスを指定できます。そのインデックスに存在する要素とその右側のすべての要素は、1つ右にシフトします。

ArrayList のインデックスに整数要素を追加する

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    arrList.add(1, 199); // Inserting 199 at index 1.
  }
}

インデックスを使用して ArrayList 要素にアクセスする

インデックスを使用して、個々の ArrayList アイテムをフェッチできます。インデックス値を get() メソッドに渡して、必要な要素をフェッチします。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    arrList.add(1, 199); // Inserting 199 at index 1.
    System.out.println("Element at index 1: " + arrList.get(1));
    System.out.println("Element at index 2: " + arrList.get(2));
  }
}

出力:

Element at index 1: 199
Element at index 2: 7

単一の print ステートメントを使用して、ArrayList 全体を出力することもできます。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<Integer> arrList = new ArrayList<Integer>();
    arrList.add(5);
    arrList.add(7);
    arrList.add(12);
    System.out.println("Printing the ArrayList: " + arrList);
    arrList.add(1, 199); // Inserting 199 at index 1.
    System.out.println("Printing the ArrayList: " + arrList);
  }
}

出力:

Printing the ArrayList: [5, 7, 12]
Printing the ArrayList: [5, 199, 7, 12]

int 配列の ArrayList

各要素自体が配列である ArrayList を作成できます。データ型と角かっこを使用して、新しい配列を作成します。

同様に、int[] を使用して ArrayList のタイプを定義しました。int のようなプリミティブを ArrayList 型として使用することはできませんが、int []を使用することはできます。これは、Java の配列がオブジェクトであり、プリミティブではないためです。また、ArrayList は任意のオブジェクトタイプ(この場合は配列)で作成できます。

ArrayList<int[]> arrList = new ArrayList<int[]>();

上記で説明したすべての基本操作を実行できます。配列をコンソールに適切に出力するには、ArraystoString() メソッドを使用する必要があります。

import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();

    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);

    // Fetching the array from the List
    int[] arrAtIdx1 = arrList.get(1);

    // Printing the fetched array using the toString() method of Arrays
    System.out.println("The Second array in the List is: " + Arrays.toString(arrAtIdx1));
  }
}

出力:

The Second array in the List is: [3, 6, 9]

ArrayList から int 配列要素にアクセスする

ArrayList にある int 配列の個々の要素にアクセスすることもできます。これを行うには、配列インデックスを使用します。たとえば、3 番目の配列の 2 番目の要素にアクセスする場合は、次のコードを使用します。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();
    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);

    // Fetching the second element of the third array
    int[] thirdArr = arrList.get(2);
    int secondElement = thirdArr[1];
    System.out.println("Second Element of the Third Array is: " + secondElement);
  }
}

出力:

Second Element of the Third Array is: 10

ただし、配列の ArrayList 全体を出力するには、追加のコードが必要です。

import java.util.ArrayList;
import java.util.Arrays;
public class Demo {
  public static void main(String[] args) {
    ArrayList<int[]> arrList = new ArrayList<int[]>();
    int[] arr1 = {2, 4, 6};
    int[] arr2 = {3, 6, 9};
    int[] arr3 = {5, 10, 15};

    // Adding int arrays to the ArrayList
    arrList.add(arr1);
    arrList.add(arr2);
    arrList.add(arr3);
    for (int i = 0; i < arrList.size(); i++) {
      int[] currArr = arrList.get(i);
      System.out.println("Array at index " + i + " is: " + Arrays.toString(currArr));
    }
  }
}

出力:

Array at index 0 is: [2, 4, 6]
Array at index 1 is: [3, 6, 9]
Array at index 2 is: [5, 10, 15]

ArrayLists の ArrayList

上で説明したように、配列は固定長ですが、ArrayLists は動的です。int 配列の ArrayList を作成する代わりに、Integer``ArrayListsArrayList を作成できます。これにより、アレイのスペースが不足することを心配する必要がなくなります。

ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();

以前と同じように、add() メソッドと get() メソッドを使用できます。ただし、各 ArrayList 要素を出力するにはループが必要です。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();
    // Creating individual ArrayLists
    ArrayList<Integer> arrList1 = new ArrayList<>();
    arrList1.add(2);
    arrList1.add(4);
    arrList1.add(6);
    ArrayList<Integer> arrList2 = new ArrayList<>();
    arrList2.add(3);
    arrList2.add(6);
    arrList2.add(9);
    ArrayList<Integer> arrList3 = new ArrayList<>();
    arrList3.add(5);
    arrList3.add(10);
    arrList3.add(15);
    // Adding ArrayLists to the ArrayList
    arrListOfarrLists.add(arrList1);
    arrListOfarrLists.add(arrList2);
    arrListOfarrLists.add(arrList3);
    // Fetching ArrayList
    ArrayList<Integer> listAtIdx1 = arrListOfarrLists.get(1);
    System.out.println("ArrayList present at index 1 is: " + listAtIdx1 + "\n");
    // Printing the entire ArrayList
    for (int i = 0; i < arrListOfarrLists.size(); i++)
      System.out.println("ArrayList at index " + i + " is " + arrListOfarrLists.get(i));
  }
}

出力:

ArrayList present at index 1 is: [3, 6, 9]
ArrayList at index 0 is [2, 4, 6]
ArrayList at index 1 is [3, 6, 9]
ArrayList at index 2 is [5, 10, 15]

ArrayList の個々の要素にアクセスする場合は、get() メソッドを 2 回使用します。たとえば、3 番目の ArrayList の 2 番目の要素が必要な場合は、次のように使用します。

import java.util.ArrayList;
public class Demo {
  public static void main(String[] args) {
    ArrayList<ArrayList<Integer> > arrListOfarrLists = new ArrayList<ArrayList<Integer> >();
    // Creating individual ArrayLists
    ArrayList<Integer> arrList1 = new ArrayList<>();
    arrList1.add(2);
    arrList1.add(4);
    arrList1.add(6);
    ArrayList<Integer> arrList2 = new ArrayList<>();
    arrList2.add(3);
    arrList2.add(6);
    arrList2.add(9);
    ArrayList<Integer> arrList3 = new ArrayList<>();
    arrList3.add(5);
    arrList3.add(10);
    arrList3.add(15);
    // Adding ArrayLists to the ArrayList
    arrListOfarrLists.add(arrList1);
    arrListOfarrLists.add(arrList2);
    arrListOfarrLists.add(arrList3);
    // Fetching second element of the third ArrayList
    ArrayList<Integer> thirdList = arrListOfarrLists.get(2);
    int secondElement = thirdList.get(1);
    System.out.print("second element of the third ArrayList is: " + secondElement);
  }
}

出力:

second element of the third ArrayList is: 10

まとめ

ArrayList は、おそらく Java で最も一般的に使用されるコレクションです。これは、同じタイプの要素を格納するために使用される単純なデータ構造です。int のようなプリミティブ型の ArrayList を作成することはできません。これらのプリミティブのラッパークラスを使用する必要があります。ArrayList クラスは、リストから要素を追加およびフェッチするための便利なメソッドを提供します。配列の ArrayList または ArrayListsArrayList を作成することもできます。これらは主に、2D マトリックス形式または表形式でデータを表すために使用されます。サイズを制限しないので、ArrayListsArrayList を使用することをお勧めします。

関連記事 - Java ArrayList