***
17815 ワード
テキストリンク:https://blog.csdn.net/MrBean1993/article/details/87637945
1.コレクション——Collection
すべてのコレクションでCollectionインタフェースが実装され、2つの一般的なCollectionインタフェースのサブインタフェースがあります. java.util.List:繰り返し可能な集合であり、順序 java.util.Set:繰り返し不可能な集合(実際のプログラミングでは使用されていないが、紹介は省略) 2.List——Collectionでよく見られるサブインタフェース
Listには2つの一般的な実装クラスがあります. java.util.ArrayList:配列を使用して実装され、クエリーのパフォーマンスが良い java.util.LinkedList:チェーンテーブルを使用して実現し、削除性能がよく、特に最初の削除要素 3.キュー-非常に古典的なデータ構造の1つで、要素のセットを保存できますが、アクセス要素は先進的な先出し原則に従う必要があります.シングルエンドキュー(Queue): を先頭に移動デュアルエンドキュー(Deque):各ヘッダが出入り可能であり、シングルエンドキューのサブインタフェースであり、LinkedListもその一般的な実装クラス である.
4.スタック——データ構造、1組の要素を保存することができるが、アクセス要素は先進的な後出に従わなければならない
両端の列の一端を塞ぐとスタック構造になります(手動笑顔).
5.上記類の関係 CollectionのサブインタフェースはList,Queue である. ArrayListが実現するインタフェースはList のみである. LinkedListが実現するインタフェースはList,Deque である.
6.すべての集合が持つ一般的な方法(すなわち、上記のいずれかの方法)
add:集合の最後に要素を追加addAll:ある集合のすべての要素を別の集合に追加remove:指定した要素を集合から削除removeAll:ある集合から削除し、別の集合の交差contains:集合に指定した要素containsAllが含まれているかどうかを判断する:2つの集合に交差があるかどうかを判断する
7.配列を巡る3つの方法、要素を削除する方法と違い(コードのコメントに注意)
つまり、コレクション内の要素を削除する場合は、新しいループ(breakを覚えている) を使用できます.条件を満たすすべての要素を削除するには、反復器 を使用します.
キュー、スタックでよく使用されるメソッドシングルエンドキュー(Queue)でよく使用される方法: add:1つのメタ索を追加キューが満たされている場合、IIIegaISlabEeplian異常 を投げ出す remove:キューヘッダの要素を削除して返します.キューが空の場合、NoSuchElementException例外 が放出されます. element:キューヘッダの要素を返します.キューが空の場合、NoSuchElementException例外 が放出されます. offer:要素を追加してtrueを返し、キューがいっぱいになったらfalse を返します. poll:キューヘッダの要素を削除して問い返し、キューが空の場合null を返します. peek:キューヘッダの要素を返し、キューが空の場合null を返します. put:要素を追加し、キューがいっぱいになると がブロックされます. take:キューヘッダの要素を削除して返します.キューが空の場合、 がブロックされます.
両端キュー(Deque)でよく使用される方法: offerFirst:キューの先頭に要素 を追加 offerLast:キューの最後に要素を追加します.offer機能と同じ です. pollFirst:キューの先頭の要素を取得し、削除します.poll機能と同じ です. pollLast:キューの最後の要素を取得し、 を削除します. peekFirst:キューの先頭の要素を取得し、 を削除しません. peekLast:キューの最後の要素を取得し、 を削除しません.
スタックでよく使われる方法:スタック構造は実は両端キューです push:キューの先頭に要素を追加し、offerFirst機能と同じ pop:キューの先頭要素を取得し、 を削除します.
このいくつかのメソッドは、異なるメソッド名、機能は同じであるが、異なるアプリケーションシーンに対して対応するメソッドを呼び出す必要があり、スタックの追加要素であればofferFirstを用いることができるが、その対応する追加メソッドpush を用いることが望ましい.
配列セット間の変換
1.配列を集合に変換
2.集合を配列に変換
集合を配列に変換し、配列を操作すれば元の集合とは関係なく、勝手にやる(手動笑顔)
1.コレクション——Collection
すべてのコレクションでCollectionインタフェースが実装され、2つの一般的なCollectionインタフェースのサブインタフェースがあります.
Listには2つの一般的な実装クラスがあります.
4.スタック——データ構造、1組の要素を保存することができるが、アクセス要素は先進的な後出に従わなければならない
両端の列の一端を塞ぐとスタック構造になります(手動笑顔).
5.上記類の関係
6.すべての集合が持つ一般的な方法(すなわち、上記のいずれかの方法)
add:集合の最後に要素を追加addAll:ある集合のすべての要素を別の集合に追加remove:指定した要素を集合から削除removeAll:ある集合から削除し、別の集合の交差contains:集合に指定した要素containsAllが含まれているかどうかを判断する:2つの集合に交差があるかどうかを判断する
7.配列を巡る3つの方法、要素を削除する方法と違い(コードのコメントに注意)
つまり、
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
list.add("four");
list.add("five");
list.add("five");
System.out.println(list);
// for list, "three"
for (int i = 0; i < list.size(); i++) {
if ("three".equals(list.get(i))) {
list.remove(i);
}
}
// list.size() ,
System.out.println(list);
// list, "four"
for (String string : list) {
if ("four".equals(string)) {
list.remove(string);
break;
// list "four"
// "four" , break
}
}
System.out.println(list);
// list, "five"
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
if ("five".equals(iterator.next())) {
iterator.remove();
}
}
// "five"
System.out.println(list);
// : , ( break)
// ,
}
}
キュー、スタックでよく使用されるメソッド
配列セット間の変換
1.配列を集合に変換
- , , ,
public static void main(String[] args) {
String[] arr = {"one","two","three"};
System.out.println("array: " + Arrays.toString(arr));
List<String> list = Arrays.asList(arr);
System.out.println(list);
List<String> list2 = new ArrayList<>(list); // list , list2
System.out.println(list2);
list2.add("five");
System.out.println(list2);
}
2.集合を配列に変換
集合を配列に変換し、配列を操作すれば元の集合とは関係なく、勝手にやる(手動笑顔)
public static void main(String[] args) {
Collection<String> collection = new ArrayList<>();
collection.add("one");
collection.add("two");
collection.add("three");
collection.add("four");
System.out.println(collection);
String [] arr = collection.toArray(new String[collection.size()]);
arr[1] = "1";
System.out.println(arr.length);
System.out.println(Arrays.toString(arr));
System.out.println(collection);
}