このJava Listチュートリアルでは、Javaでリストを作成、初期化、および印刷する方法について説明します。

このチュートリアルでは、Java Collection Interfaceの基本的な構造の一つであるデータ構造’list’について紹介します。

Javaのリストは、順序に従った要素のシーケンスです。 Javaのリストインターフェイス。,utilパッケージの一つを実装したこのシーケンスのオブジェ命は、特定のファッションと呼ばれます。

=>ここですべてのJavaチュートリアルを確認してください。

配列と同様に、最初のインデックスが0から始まるインデックスを使用してリスト要素にアクセスすることもできます。 インデックスは、インデックス’i’の特定の要素、つまりリストの先頭から離れたi要素であることを示します。

Javaにおけるリストの特徴のいくつかは次のとおりです。

  • リストは重複する要素を持つことができます。
  • リストには’null’要素も含めることができます。,
  • リストはジェネリックリストをサポートしています。
  • 同じリストにオブジェクト(異なるクラスのオブジェクト)を混在させることもできます。
  • リストは常に挿入順序を保持し、位置アクセスを許可します。

JavaのList

Java Listインタフェースは、Javaコレクションインタフェースのサブタイプです。 これは、JavaのCollectionインタフェースを継承する標準インタフェースです。

以下に、Java Listインタフェースのクラス図を示します。,

Java Listクラス図

上記のクラス図に示すように、Java listインタフェースはjavaのCollectionインタフェースから拡張されています。utilパッケージは、javaのIterableインターフェイスから拡張されます。utilパッケージ。 AbstractListクラスは、Listインタフェースのスケルトン実装を提供します。

LinkedList、Stack、Vector、ArrayList、およびCopyOnWriteArrayListクラスは、プログラマによって頻繁に使用されるListインターフェイスのすべての実装クラスです。, したがって、JavaにはStack、LinkedList、ArrayList、およびVectorの四つのタイプのリストがあります。したがって、リストインターフェイスを実装する必要がある場合は、要件に応じて上記のリストタイプクラスを実装することができます。 Listインターフェイスの機能をプログラムに含めるには、javaパッケージをインポートする必要があります。ユーティル,*次のようにリストインターフェイスと他のクラス定義を含む:

import java.util.*;

Create&リストを宣言する

Listはインターフェイスであり、ArrayList、Stack、Vector、LinkedListなどのクラスによって実装されているとすでに述べています。 したがって、次のいずれかの方法でリストのインスタンスを宣言および作成することができます。

List linkedlist = new LinkedList(); List arrayList = new ArrayList();List vec_list = new Vector(); List stck_list = new Stack();

上記のように、上記のクラスのいずれかでリストを作成し、これらのリストを値で初期化することができます。, 上記のステートメントから、リストのインスタンスを作成するために使用されるクラスに応じて要素の順序が変更されることがわかります。たとえば、スタッククラスを持つリストの場合、順序はLast In、First Out(LIFO)です。

Java Listの初期化

リストオブジェクトを初期化するには、以下のいずれかのメソッドを使用できます。

#1)asListメソッドの使用

メソッドasList()は、すでにArraysのトピックで詳細に説明されています。 配列の値を使用して不変リストを作成できます。,

一般的な構文は次のとおりです。

List<data_type> listname = Arrays.asList(array_name);

ここで、data_typeは配列のdata_typeと一致する必要があります。

上記のステートメントは不変リストを作成します。 リストを変更可能にしたい場合は、newを使用してリストのインスタンスを作成し、asListメソッドを使用して配列要素を割り当てる必要があります。

これは以下の通りです。

List<data_type> listname = new ArrayList<> (Arrays.asList(array_name));

asListメソッドを使用してリストの作成と初期化を示すプログラムをJavaで実装しましょう。,

出力:

上記のプログラムでは、最初にasListメソッドを使用して不変リストを作成しました。 次に、ArrayListのインスタンスを作成し、asListメソッドを使用して配列の値でこのArrayListを初期化することにより、可変リストを作成します。

二番目のリストは変更可能であるため、より多くの値を追加することもできることに注意してください。

#2)リストを使用します。add()

既に述べたように、リストは単なるインターフェイスであるため、インスタンス化することはできません。 そのインスタンスを生成できるこのインタフェースを実装する., したがって、リストクラスを初期化するには、それぞれのaddメソッドを使用できます。

リンクリストクラスを以下のようにインスタンス化する場合。

List<Integer> llist = new LinkedList<Integer> ();

次に、リストに要素を追加するには、次のようにaddメソッドを使用できます。

llist.add(3);

同じステートメントでaddメソッドを呼び出すことによって、リストをインスタンス化および初期化する”ダブルブレース初期化”と呼ばれる手法もあります。,

これは以下のように行われます。

List<Integer> llist = new LinkedList<Integer> (){{ add(1); add(3);}};

上記のステートメントは、要素1と要素3をリストに追加します。

次のプログラムは、addメソッドを使用したリストの初期化を示しています。 また、二重ブレース初期化手法も使用します。

出力:

このプログラムは、三つの異なるリスト宣言、つまりArrayList、LinkedList、およびStackを持っています。

ArrayListオブジェクトとLinkedListオブジェクトがインスタンス化され、addメソッドが呼び出されてこれらのオブジェクトに要素を追加します。, スタックの場合、二重ブレースの初期化が使用され、インスタンス化自体の間にaddメソッドが呼び出されます。

#3)Collectionsクラスメソッドの使用

Javaのcollectionsクラスには、リストを初期化するために使用できるさまざまなメソッドがあります。

メソッドのいくつかは次のとおりです。

  • addAll

コレクションaddAllメソッドの一般的な構文は次のとおりです。

List<dataType> listname = Collections.EMPTY_LIST;Collections.addAll(listname = new ArrayList<datatype>(), values…);

ここでは、空のリストに値を追加します。 AddAllメソッドは、リストを最初のパラメーターとして受け取り、その後にリストに挿入される値が続きます。,

  • unmodifiableList()

メソッド’unmodifiableList()’は、要素を追加も削除もできない不変のリストを返します。

このメソッドの一般的な構文は次のとおりです。

List<datatype> listname = Collections.unmodifiableList(Arrays.asList(values…));

メソッドはリスト値をパラメータとして受け取り、リストを返します。 このリストから要素を追加または削除しようとすると、コンパイラは例外UnsupportedOperationExceptionをスローします。

  • singletonList()

‘singletonList’メソッドは、単一の要素を持つリストを返します。 リストは不変です。,

このメソッドの一般的な構文は次のとおりです。

List<datatype> listname = Collections.singletonList(value);

次のJavaプログラムは、上記のCollectionsクラスのすべてのメソッドを示しています。

Output:

#4)Java8ストリームの使用

Java8でのストリームの導入により、データのストリームを構築してリストに収集することもできます。

以下のプログラムは、ストリームを使用してリストの作成を示しています。

出力:

上記のプログラムは、文字列のストリームをリストに収集し、それを返します。, また、’toCollection’、’unmodifiableList’などの他のコレクタメソッドを使用することもできます。 collect関数のasListとは別に。

#5)Java9リスト。of()メソッド

Java9,Listで新しいメソッドが導入されました。of()は、任意の数の要素を取り、リストを構築します。 構築されたリストは不変です。

Output:

List Example

以下に示すのは、listインタフェースとそのさまざまなメソッドを使用する完全な例です。

出力:

上記のプログラム出力は、ArrayListに対して実行されるさまざまな操作を示しています。 まず、リストを作成して初期化します。, 次に、別のリストの内容をこのリストにコピーし、リストから要素も削除します。 最後に、リストの最後の要素を別の値に置き換えます。

次のチュートリアルでは、リストメソッドについて詳しく説明します。

リストの印刷

Javaでリストの要素を印刷できるさまざまな方法があります。

ここでいくつかの方法について説明しましょう。

#1)Using For Loop/Enhanced For Loop

リストは、インデックスを使用してアクセスできる順序付けられたコレクションです。, インデックスを使用してリストの各要素を出力するために反復処理するために使用されるforループを使用できます。Javaには別のバージョンのforループがあり、リストの各要素にアクセスして印刷するためにも使用できる拡張forループとして知られています。

以下に示すJavaプログラムは、for loopおよびenhanced for loopを使用したリストコンテンツの印刷を示しています。

出力:

#2)toStringメソッドを使用して

listインタフェースのメソッド’toString()’は、リストの文字列表現を返します。

以下のプログラムはtoString()メソッドの使用方法を示しています。,

出力:

配列に変換されたリスト

リストには、リストを配列に変換するtoArray()メソッドがあります。 配列に変換すると、それぞれのトピックで説明している配列メソッドを使用して、この配列の内容を出力することができます。 Forまたはenhanced forループまたはtoStringメソッドを使用できます。

以下の例では、toStringメソッドを使用して配列の内容を出力します。

出力:

Java8ストリームの使用

ストリームはJava8で導入されています。 ストリームを使用してリストをループすることができます。, リストを反復処理できるラムダもあります。

以下のプログラムは、リストを反復処理してその内容を表示するためのストリームの使用法を示しています。

Output:

上記のメソッドとは別に、リストイテレータを使用してリストを反復処理し、その内容を表示することができます。 その後のチュートリアルでは、リストイテレータに関する完全な記事があります。

リストのリスト

Javaリストインターフェイスは、”リストのリスト”をサポートしています。 この中で、リストの個々の要素は再びリストです。 つまり、別のリスト内にリストを持つことができます。,

このコンセプトは、CSVファイルなどからデータを読み取る必要がある場合に非常に便利です。 ここでは、必要がある場合がありますの読み複数のリストまたはリスト内のリストをけることもできます。 ここでも、このデータを処理してファイルに書き戻す必要があります。 したがって、このような状況では、リストのリストを維持してデータ処理を簡素化できます。

次のJavaプログラムは、リストのJavaリストの例を示しています。

このプログラムでは、String型のリストのリストがあります。 String型の二つの別々のリストを作成し、これらのリストに値を割り当てます。, 両方のリストは、addメソッドを使用してリストのリストに追加されます。

リストのリストの内容を表示するには、二つのループを使用します。 外部ループ(foreach)は、リストにアクセスするリストのリストを反復処理します。 内部foreachループは、これらの各リストの個々の文字列要素にアクセスします。

出力:

Java list of listsは小さな概念ですが、プログラムで複雑なデータを読み取る必要がある場合は特に重要です。

よくある質問

Q#1)Javaのリストとセットとは何ですか?

答え:リストは要素の順序付けられたコレクションです。, リストに重複する要素を含めることができます。

セットは順序付けされたコレクションではありません。 セット内の要素は、特定の順序で配置されていません。 また、セット内の要素は一意である必要があります。 重複は許可されません。Q#2)javaでリストはどのように機能しますか?答え:リストは、コレクションインターフェイスから拡張されたJavaのインターフェイスです。 ArrayList、LinkedList、Stack、およびVectorクラスは、listインターフェイスを実装します。 このようにプログラマが使用できるこれらのクラス用の高機能で高い開発生産性をリストインタフェース。Q#3)JavaのArrayListとは何ですか?,答え:ArrayListは動的配列です。 要素のサイズ変更可能なコレクションで、listインターフェイスを実装します。 ArrayListは内部的に要素を格納するために配列を使用します。Q#4)Javaでリストは0または1から始まりますか?答え:Javaのリストにはゼロベースの整数インデックスがあります。 これは、リストの最初の要素がインデックス0にあり、二番目の要素がインデックス1にあることを意味します。

Q#5)リストは順序付けられていますか?

答え:はい。 リストには順番に並べたものです。, この順序は、リスト内の新しい要素の挿入時に、保持されます

結論

このチュートリアルでは、Javaのリストインターフェイスを紹介しました。 また、リストの作成、リストの初期化、リストの印刷などのリストの主要な概念についても議論しました。

今後のチュートリアルでは、listインターフェイスによって提供されるさまざまなメソッドについて説明します。 また、listオブジェクトを反復処理するために使用されるiterator構造についても説明します。 なりましたので、変換のリストオブジェクトが他のデータ構造に当社の今後のチュートリアルです。,

=>すべてのJavaトレーニングシリーズを見るためにここにアクセスしてください。