CodeGym/Java Blog/ランダム/Java の Arrays.asList() メソッド
John Squirrels
レベル 41
San Francisco

Java の Arrays.asList() メソッド

ランダム グループに公開済み
人のメンバー
多くの初心者は、Arrays.asList()メソッドの概念とデータ構造 ArrayList を混同しています。見た目や音は似ているかもしれませんが、実装となると、これら 2 つはまったく異なります。この投稿では、 Arrays.asList()メソッドの基本的な使用方法を説明し、それに関連する一般的な混乱を解決します。

Arrays.asList() が使用されるのはなぜですか?

リストに変換する必要がある配列がある場合、java.util.Arrays はこの目的を果たすラッパーArrays.asList()を提供します。簡単に言うと、このメソッドは配列をパラメータとして受け取り、リストを返します。Java プラットフォーム API の主要部分は、コレクション フレームワークが導入される前に開発されました。したがって、場合によっては、従来の配列とより新しいコレクションの間で変換が必要になることがあります。この関数は、コレクションと配列ベースの API の間のリンクとして機能します。Java の Arrays.asList() メソッド - 1

次の例を見てください。
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class ArraysAsListDemo {
    public static void main(String[] args) {

	String[] teamMembers = {"Amanda", "Loren", "Keith"};
      // using aslist() method
	List teamList = Arrays.asList(teamMembers);
	System.out.println("List : " + teamList);

	HashSet teamHashSet = new HashSet<>(Arrays.asList(teamMembers));
	System.out.println("HashSet : " + teamHashSet);
    }
}
出力:
List : [Amanda, Loren, Keith] HashSet : [Keith, Loren, Amanda] // HashSet は順序を維持しません

Arrays.asList() と ArrayList はどう違うのでしょうか?

配列に対して Arrays.asList() メソッドを呼び出すと、返されるオブジェクトはArrayList ( Listインターフェイスのサイズ変更可能な配列実装)ではありません。これは、基になる配列にアクセスするget()メソッドとset()メソッドを備えたビュー オブジェクトです。関連するイテレータのadd()Remove()など、配列のサイズを変更するすべてのメソッドは、UnsupportedOperationExceptionをスローします。Java プログラムが正常にコンパイルされても実行時例外が発生する理由は、明らかに、次の結果として「リスト」が返されるためです。Arrays.asList()。すべての追加/削除操作が許可される場合。ただし、基礎となるデータ構造はサイズ変更できない「配列」であるため、実行時に例外がスローされます。どのように見えるかを示すスニペットは次のとおりです。
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
   public static void main(String[] args) {
	Integer[] diceRoll = new Integer[6];
      //using aslist() method
	List diceRollList = Arrays.asList(diceRoll);
	System.out.println(diceRollList);

	// using getters and setters to randomly access the list
	diceRollList.set(5, 6);
	diceRollList.set(0, 1);
	System.out.println(diceRollList.get(5));
	System.out.println(diceRollList.get(1));

	System.out.println(diceRollList);

	diceRollList.add(7); // Add a new Integer to the list
    }
}
出力:
[null、null、null、null、null、null] 6 null [1、null、null、null、null、6] スレッド「メイン」の例外 java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList. java:148) java.util.AbstractList.add(AbstractList.java:108) で ArraysAsListDemo.main(ArraysAsListDemo.java:20)

asList() メソッドの使用例

Java SE 5.0 では、asList()メソッドは可変数の引数を持つように宣言されています。配列を渡す代わりに、個々の要素を渡すこともできます。例えば:
import java.util.Arrays;
import java.util.List;
public class ArraysAsListDemo {
    public static void main(String[] args) {
	List seasons = Arrays.asList("winter", "summer", "spring", "fall");
	List odds = Arrays.asList(1, 3, 5, 7, 9);

	System.out.println(seasons);
	System.out.println(odds);
    }
}
出力:
[冬、夏、春、秋] [1、3、5、7、9]

結論

Arrays.asList()を使用するには、これが独自のユーティリティの単なるラッパー メソッドであることに留意する必要があります。ArrayList と混同しないでください。返されるのは「リスト」であることに注意してください。最初は追加/削除関数を実行するとエラーが発生する可能性がありますが、一貫した練習と理解によってすべて解決されます。IDE を起動して、素晴らしい学習体験をお楽しみください。
コメント
  • 人気
  • 新規
  • 古い
コメントを残すには、サインインしている必要があります
このページにはまだコメントがありません