***

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を覚えている)
  • を使用できます.
  • 条件を満たすすべての要素を削除するには、反復器
  • を使用します.
    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)
    			  //                ,      
    	}
    }
    
    

    キュー、スタックでよく使用されるメソッド
  • シングルエンドキュー(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.配列を集合に変換
    -        ,             ,        ,      
    
    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);
    	}