Que Java Collection Framework とは何ですか?
Ans Java Collection フレームワークは、最も一般的に使用されるデータ構造とアルゴリズムの 最適化 実装のセットを提供する強力な組み込みライブラリです。Java アプリケーションの構築や実際のソフトウェア開発の解決に広く利用されています。課題。
Java コレクション フレームワークの利点は何ですか?
Ans Java Collection フレームワークの利点のいくつかは次のとおりです。
反復可能なインターフェイス
Java の Iterable インターフェイスは、コレクション フレームワークの重要なコンポーネントです。これは、反復処理できるすべてのコレクション型のルート インターフェイスです。 Iterable インターフェイスを実装すると、オブジェクトを「for-each ループ」 (拡張 for ループとも呼ばれます) のターゲットにすることができます。
また、この反復可能なインターフェイスを実装するすべてのデータ構造の前方反復に使用できる反復子オブジェクトも提供します。
FOR EACH LOOP (拡張 FOR LOOP) を使用した例
内部的に ArrayList はリストを実装し、リスト インターフェイスはコレクション インターフェイスを拡張し、コレクション インターフェイスは反復可能インターフェイスを拡張します。
List
list.add("Java");//要素を追加
list.add("Collections");//要素を追加
list.add("フレームワーク");//要素を追加
for (String element : list) {//拡張 for ループ
を使用した反復処理
System.out.println(要素);
}
ITERABLE オブジェクトを使用した例
Iterator
while (iterator.hasNext()) {
文字列要素 = iterator.next();
System.out.println(要素);
}
そのため、反復可能インターフェイスを実装し、next、hasNext、remove メソッドをオーバーライドするカスタム反復可能を作成できます。以下は同じ例です。
import java.util.Iterator; class CustomIterable implements Iterable{ private final int[] numbers = {1, 2, 3, 4, 5}; @Override public Iterator iterator() { return new Iterator () { private int index = 0; private int lastReturnedIndex = -1; @Override public boolean hasNext() { return index 注記 :
- Java のイテレータはフェイルファストです。これは、反復中にコレクションが変更された場合 (イテレーター自身の Remove() メソッドによる場合を除く)、ConcurrentModificationException.
がスローされることを意味します。- remove() メソッドは要素を削除することしかできず、next() の呼び出しごとに 1 回だけ呼び出す必要があります。それ以外の場合は、IllegalStateException.
がスローされます。コレクションインターフェイス
これは、データ構造と内部実装を柔軟にするためのインターフェイスです。主にすべてのクラスはこのインターフェイスを間接的に実装しており、コレクション参照に割り当てられたオブジェクトを変更するだけで実装を変更できます。
//ArrayList Collectionc = new ArrayList(): c.add(1); c.add(2); c.contains(1); Collection c1 = new LinkedList(): c1.addAll(c);//Array added to a linked list /*What if i dont want arraylist but now i want a priority queue for applying efficient algorithms such as findmax and find min*/ //Just Change Object - SIMPLE! Collection c = new **PriorityQueue**(): c.add(1); c.add(2); c.contains(1); 収集インターフェイスのメソッド
- int size : コレクションのサイズを返します。
- boolean isEmpty : コレクションが空の場合は true を返します。
- boolean contains(Object o) : オブジェクト o がコレクションに存在する場合は true を返します。
- Iterator
iterator() : コレクションを指すイテレータを返します。 - Object[] toArray() : コレクションを Object 型の配列に変換します。
T[] toArray(T[] a) : コレクションのすべての要素を含む配列を返します。返される配列の実行時型は、指定された配列の型です。 - boolean add(E e) : 要素 e をコレクションに追加します。操作が成功した場合は true を返します。
- boolean Remove(Object o) : コレクションからオブジェクト o を削除します。操作が成功した場合は true を返します。
- boolean containsAll(Collection> c) : 両方のコレクション内のすべての要素が同じ場合に true を返します。操作が成功した場合は true を返します。 10.boolean addAll(Collection extends E> c) : 両方のコレクションのすべての要素を追加します。操作が成功した場合は true を返します。
- boolean RemoveAll(Collection> c) : 呼び出し元のコレクションからコレクション c の要素を削除します。操作が成功した場合は true を返します。
- boolean restartAll(Collection> c) : コレクション c.
に存在する要素のみを保持します。- void clear() : コレクションからすべての要素をクリアします。
コレクション クラスを実装することで、上記のメソッドをオーバーライドしてカスタム コレクションを作成できます。以下は同じ例です。
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.NoSuchElementException; public class CustomCollectionimplements Collection { private final ArrayList list = new ArrayList(); @Override public int size() { return list.size(); } @Override public boolean isEmpty() { return list.isEmpty(); } @Override public boolean contains(Object o) { return list.contains(o); } @Override public Iterator iterator() { return new Iterator () { private int index = 0; @Override public boolean hasNext() { return index T[] toArray(T[] a) { return list.toArray(a); } @Override public boolean add(E e) { return list.add(e); } @Override public boolean remove(Object o) { return list.remove(o); } @Override public boolean containsAll(Collection> c) { return list.containsAll(c); } @Override public boolean addAll(Collection extends E> c) { return list.addAll(c); } @Override public boolean removeAll(Collection> c) { return list.removeAll(c); } @Override public boolean retainAll(Collection> c) { return list.retainAll(c); } @Override public void clear() { list.clear(); } } リストインターフェイス
Java の List インターフェイスは Java Collections Framework の一部であり、Collection インターフェイスを拡張します。これは、位置アクセス、要素の重複、およびその要素の反復を可能にする、順序付けられたコレクション (シーケンスとも呼ばれます) を表します。 List インターフェイスは、ArrayList、LinkedList、Vector、Stack などのいくつかのクラスによって実装されます。
リスト インターフェイスの主な特徴:
- 順序付きコレクション: リストは要素の挿入順序を保持します。つまり、要素はインデックスによってアクセスできます。
- 重複を許可: 重複を許可しないセットとは異なり、リストには重複した要素を含めることができます。
- 位置アクセス: リスト内の要素は、インデックスによってアクセス、追加、削除できます。
- 反復: List インターフェイスでは、拡張された for ループと、Iterator または ListIterator を使用した反復が可能です。
リスト インターフェイスの一般的に使用されるメソッド:
リスト インターフェイスはコレクション インターフェイスを拡張するため、すべてのコレクション インターフェイス メソッドもリスト インターフェイスによって実装されます。
- void add(int index, E element): 指定された要素 E をこのリストの指定されたインデックスに挿入します。
- E get(int index): このリスト内の指定された位置にある要素を返します。
- E Remove(int Index): このリスト内の指定された位置にある要素を削除します。
- E set(intindex, E element): このリスト内の指定された位置にある要素を指定された要素に置き換えます。
- int indexOf(Object o): 指定された要素が最初に出現したインデックスを返します。リストにその要素が含まれていない場合は -1 を返します。
- int lastIndexOf(Object o): 指定された要素が最後に出現したインデックスを返します。リストに要素が含まれていない場合は -1 を返します。
- List subList(int fromIndex, int toIndex): 指定された fromIndex (これを含む) と toIndex (これを含まない) の間のこのリストの部分のビューを返します。
import java.util.ArrayList; import java.util.List; public class ListExample { public static void main(String[] args) { Listlist = new ArrayList(); list.add("Java"); list.add("Collections"); list.add("Framework"); // Accessing elements by index System.out.println("First Element: " list.get(0)); // Removing an element by index list.remove(1); System.out.println("After Removal: " list); // Updating an element list.set(1, "Updated Element"); System.out.println("Updated List: " list); // Using a sublist List sublist = list.subList(0, 1); System.out.println("Sublist: " sublist); } }
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3