Java
 Computer >> コンピューター >  >> プログラミング >> Java

ArrayList Java:初心者向けガイド

配列を使用する前に、配列のサイズを宣言する必要があることにうんざりしていませんか?配列に値を追加する前に、配列に格納する値の数を定義する必要があるとは限らないため、あなただけではありません。

そこで、私たちの親切な友人であるJavaArrayListが登場します。

このガイドでは、ArrayListとは何か、それらがどのように機能するか、および従来の配列とどのように比較されるかについて説明します。また、ArrayListクラスを効果的に使用するために知っておく必要のある最も重要なメソッドについても説明します。始めましょう!

ArrayListとは何ですか?

ArrayListは、サイズ変更可能な配列を作成できる特別なタイプのリストです。 ArrayListクラスは、順序付けされたデータを格納するために使用されるListインターフェイスを実装します。

Javaで配列を操作する場合、その配列内に値を格納する前に、その配列のサイズを宣言する必要があります。配列を宣言する前に、配列に格納する値の数がわからない場合がよくあります。これは問題を引き起こします。

ArrayListクラスを使用すると、格納できる値の数を通知する必要のない配列を定義できます。 ArrayLists。dynamic arraysと呼ばれることもあります。 、要素を追加または削除するときに容量を変更できます。

ArrayListを作成する方法

わかりやすい場所、つまりArrayListの宣言から始めましょう。 1つの設定は、Javaリストインターフェイスを使用するため、配列を宣言する方法とはまったく異なります。

Javaファイルを開き、次のコードをメインクラスに貼り付けます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

import java.util.ArrayList;
ArrayList<String> songs = new ArrayList<>();

songsという配列リストを作成しました 。 String は配列に格納されるデータのタイプを参照し、ArrayListは作成するオブジェクトのタイプを参照します。

ArrayListはJavaのutilからのものであるため、コードにインポートする必要があります 図書館。

プリミティブデータ型を使用して配列リストを作成することはできないことに注意してください。たとえば、整数の配列を宣言する場合、プリミティブintを使用することはできません。 タイプ; Integerクラスを使用する必要があります。

ArrayListに格納する必要のある値の数を指定する必要がないことに注意してください。これは、ArrayLists 動的です。

ArrayListに要素を追加する方法

add()メソッドを使用すると、リストに1つの要素を追加できます。 songsに2つの曲を追加したいとします。 配列リスト:Love Me Do and Help! (どちらもビートルズによるものです)。

新しいJavaファイルを開き、次のコードを記述します。

import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
ArrayList<String> songs = new ArrayList<>();

		songs.add("Love Me Do");
		songs.add("Help!");

		System.out.println("Songs: " + songs);
	}
}

コードが返されます:曲:[Love Me Do、Help!]

配列と同様に、ArrayList内のアイテム 独自のインデックス番号が与えられます。これは、ArrayList内のアイテムが順序付けられており、番号がプログラムにリスト内の各アイテムが表示される順序を示しているためです。必要に応じて、アイテムを追加するインデックス位置を指定できます。

songs.add(0, “Love Me Do”);

これにより、インデックス位置0のエントリ「LoveMeDo」がsongsに追加されます。 リスト。

ArrayListを初期化する

配列を宣言するときは、その配列に割り当てる値を指定することで、配列を直接初期化できます。 ArrayLists このように機能しないでください。 ArrayList. asList() ArrayListクラスで読み取ることができるリストとして配列を返します。

リストに追加したい値がすでにいくつかある場合は、ArrayListを値で初期化することをお勧めします。

forループを使用して、各アイテムを個別に追加できます。ただし、このアプローチは、asList()を使用して値を使用してリストを初期化するよりも、設定が複雑で効率が低くなります。 。

コードで使用するライブラリをインポートすることから始めましょう。

import java.util.ArrayList;
import java.util.Arrays;

次に、曲のArrayListを2つの値で初期化するクラスを作成します。

class Main {
	public static void main(String[] args) {
		ArrayList<String> songs = new ArrayList(Arrays.asList("Love Me Do", "Help!"));
		System.out.println("Songs: " + songs);
	}
}

このコードでは、ArrayListを宣言しています。 文字列値を格納できます。 asList()を使用して、配列リストを2つのデフォルト値で初期化するようにコードに指示しました。これは、前の例で追加したビートルズの曲と同じです。

ArrayListからアイテムを取得する

ArrayListクラスには、get()という便利なメソッドが付属しています。 これにより、配列リストの要素にアクセスできます。この方法を使用するには、アクセスする要素のインデックス位置を指定する必要があります。

この例を考えてみましょう。

import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
ArrayList<String> songs = new ArrayList<>();

		songs.add("Love Me Do");
		songs.add("Help!");

		System.out.println("Second song: " + songs.get(1));
	}
}

このコードでは、配列リストを作成し、2つの値を追加しました。次に、 songs.get(1)を使用しました リストのインデックス位置1にある曲を取得します。私たちのコードは次を返します:

2番目の曲:ヘルプ!

ArrayListを更新する

配列リストの更新は、リストに要素を追加するのと同じくらい簡単です。 set() という組み込みのメソッドがあります リストに格納されている値を変更するために使用できます。次のコードを検討してください。

import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
ArrayList<String> songs = new ArrayList<>();

		songs.add("Love Me Do");
		songs.add("Help!");

		System.out.println("Songs: " + songs);

		songs.set(1, "Come Together");
		System.out.println("Songs: " + songs);
	}
}

私たちのコードは次を返します:

曲:[Love Me Do、Help!]

曲:[Love Me Do、Come Together]

このコードでは、「LoveMeDo」と「Help!」の2つの値を追加しました。 –私たちのリストに。次に、インデックス位置が1のアイテムを「ComeTogether」に変更しました。これは「ヘルプ」に代わるものです。私たちのリストに「ComeTogether」があります。プログラムの最後にリストを印刷すると、リストが改訂されていることがわかります。

ArrayListから要素を削除する

要素は、ArrayListに永久に残る必要はありません。 remove() を使用して要素を削除できます いつでもメソッド。覚えやすいメソッド名です!

この例を考えてみましょう。

import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
ArrayList<String> songs = new ArrayList<>();

		songs.add("Love Me Do");
		songs.add("Help!");

		System.out.println("Songs: " + songs);

		String removed = songs.remove(0);
		System.out.println("Songs: " + songs);
		System.out.println(removed);
	}
}

この例では、配列リストに2つの項目を追加します。次に、インデックス位置が0のアイテムを削除します。コードは次を返します。

曲:[Love Me Do、Help!]

曲:[ヘルプ!]

Love Me Do

Love Me Doを削除しました 配列リストから。 remove() メソッドは、変数removedに割り当てた削除されたアイテムの名前を返します。 。プログラムの最後に、この変数の値をコンソールに出力しました。

ArrayListを反復処理する

ArrayListをループしたい場合はどうなりますか?好みに応じて、forループまたはfor-eachループのいずれかを使用してこれを行うことができます。

リスト内のすべてのビートルズの曲をコンソールに出力し、各値を新しい行に表示するとします。次のコードを使用してこれを行うことができます。

import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
ArrayList<String> songs = new ArrayList<>();

		songs.add("Love Me Do");
		songs.add("Help!");

		for (int i = 0; i < songs.size(); i++) {
			System.out.println(songs.get(i));
		}
	}
}

このプログラムでは、forループを使用して、配列リスト内のすべての項目を反復処理しました。配列リストの各項目について、コンソールの独自の行に出力します。このループは、リスト内のすべてのアイテムがコンソールに出力されるまで続きます。

songs.size() というメソッドを使用していることに注意してください。 このプログラムで。 size()メソッドは、配列リストに格納されている値の数を示します。

私たちのコードは次を返します:

Love Me Do

ヘルプ!

同様に、for-eachループを使用して、配列リストを反復処理できます。これは、for-eachループが反復可能なオブジェクトの反復をサポートしているためです。次の例を考えてみましょう。

import java.util.ArrayList;

class Main {
	public static void main(String[] args) {
ArrayList<String> songs = new ArrayList<>();

		songs.add("Love Me Do");
		songs.add("Help!");

		for (String song : songs) {
			System.out.println(song);
		}
	}
}

このプログラムは、構造と目的の両方で非常に似ています。 songsのすべての値を出力します コンソールへの配列リスト。違いは、for-eachループを使用して各値を反復処理したことです。

for-eachを使用することを選択できます forの代わりにループする for-eachループの方が読みやすいため、ループしますが、どちらの方法も効果的に機能します。

結論

Java ArrayListクラスを使用すると、事前に格納する値の数を通知されることなく、複数の値を格納できる配列を定義できます。

JavaでArrayListsを使用する方法のほんの一部にすぎません。詳細については、次のチュートリアルをご覧ください。

  • ArrayListからArrayへの変換
  • ArrayListを初期化する方法
  • ArrayListを並べ替える方法

これで、配列に格納する必要のある値の数がわからない場合に何をするかを心配する必要がなくなります。 ArrayListを使用してこの問題を解決できるようになります。


  1. Javaのデフォルトの配列値

    Javaは、同じタイプの要素の固定サイズの順次コレクションを格納するデータ構造、配列を提供します。配列はデータのコレクションを格納するために使用されますが、配列を同じタイプの変数のコレクションと考える方が便利な場合がよくあります。要素を割り当てずに配列を作成すると、コンパイラはそれらにデフォルト値を割り当てます。次に例を示します。 ブール値-false int-0 ダブル-0.0 オブジェクト-null 例 public class Tester {    public static void main(String[] args) {    

  2. Javaでリストを配列に変換する

    リストと配列の間の変換は、Javaでは非常に一般的な操作です。 Javaでリストを配列に変換する最も簡単な方法は、.toArray()を使用することです。 メソッド。 同様に、Arrays.asList()を使用して、リストを配列に戻すことができます。 メソッド。 以下の例は、文字列のリストと整数のリストを同等の配列に変換する方法を示しています。 リストを文字列の配列に変換 import java.util.ArrayList; import java.util.List; public class ConvertArrayListToArray { public static