集合フレーム


『Javaの定式化』を学び整理しました

コレクションフレームワーク


データ系列を標準化したクラス

コアインタフェース


List
データの重複を許可する順序付きデータセット
  • ArrayList, LinkedList, Stack, Vector
  • Set
    無秩序なデータセットと重複データは許可されません.
  • HashSet, TreeSet
  • Map
    キー値ペアからなるデータのセット.
    順序は保持されず、キーは繰り返しが許可されず、値は繰り返しが許可されます.
  • HashMap, TreeMap, Hashtable, Properties
  • Collectionインタフェース


    方法
  • boolean add(Object o), addAll(Collection c)
    指定したオブジェクトまたはアセンブリオブジェクトをアセンブリに追加
  • void clear()
    コレクション内のすべてのオブジェクトを削除します.
  • boolean contains(Object o), containsAll(Collection c)
    指定したオブジェクトまたはコレクション内のオブジェクトが含まれているかどうかを決定します.
  • boolean equals(Object o)
    同じ集合かどうかを比較します.
  • int hashCode()
    hashcodeを返します
  • boolean isEmpty()
    集合が空であることを確認します.
  • Iterator iterator()
    集合した奇形を取り戻す.
  • boolean remove(Object o)
    指定したオブジェクトの削除
  • int size()
    コレクションに格納されているオブジェクトの数を返します.
  • Object[] toArray()
    Collectionに格納されているオブジェクトをオブジェクト配列に戻します.
  • Mapインタフェース


    Key、Valueをペアで格納する集合クラスを実現するために使用されます.キーは重複できません.値は重複できます.重複するキーを使用して値を格納すると、既存の値は消え、新しい値が格納されます.
    主な方法
    Set keySet():Mapに格納されているすべてのキーオブジェクトを返します.
    Collection values():Mapに格納されているすべての値オブジェクトを返します.
    Object get(Object Key):Keyオブジェクトに対応する値オブジェクトを返します.
    Object put(Object Key,Object Value):ValueオブジェクトをMapに接続し、Mapに格納します.
    キーオブジェクトは重複を許可しないため、Set形式、valueは重複を許可するため、Collection形式に戻ります.

    ArrayList

  • アレイ
  • 長所
  • データ最速
  • をもたらす
    短所
  • サイズは変更できません.
  • 非連続データを追加または削除する時間が長い.
  • LinkedList


    LinkedListは
  • 案の不足を補った
  • ArrayListと書き込みの違い(アクセス速度が速い)
  • クラスはノードで構成されています.
    class Node{
        Node next; // 다음 요소 저장
        Object obj; // 데이터를 저장
    }
    上記の一方向接続リストは、前の要素にアクセスしにくい
    これを補うために、ダブルリンクリストが表示されます.
    class Node{
        Node next;
        Node previous; // 이전 요소의 주소를 저장
        Object obj;
    }
    n/a.結論
    1.順次追加・削除する場合、ArrayListはLinkedListより速く報告する
    2.中間データを追加/削除する場合、LinkedListはArrayListより速い.

    Stack and Queue


    stack : push and pop (Last In First Out)
  • ArrayList適合
  • スタックメソッド
    1. boolean empty()
    2. Object peek()
    3. Object pop()
    4. Object push(Object item)
    5. int search(Object o)
    スタック使用例
    1.計算式
    2.かっこをチェック
    3. undo/redo
    4.Webブラウザの後ろ/前
    queue : offer and poll (Firts In First Out)
  • LinkedListは理想的な選択である(データを取り出すたびに空白を埋めるコピーがあるため)
  • .
    Queueメソッド
    1. boolean add(Object o)
    2. Object remove()
    3. Object element()
    4. Object offer(Object o)
    5. Object poll()
    6. Object peek()
    キューの使用例
    1.最近使用した文書
    2.印刷対象ワークリスト
    3.バッファ

    priorityQueue


    Queueインタフェースの実装体の1つとして,格納順序にかかわらず優先度の高いものから始まる.
  • 記憶空間配列を用いて、hip資料構造の形式で各要素を記憶する.
  • Queue pq = new PriorityQueue(); // 선언

    Deque


    Queueは一端のみ追加/削除できますが、Dequeは両端で追加/削除できます
    インデックスはStack/queueの2つの用途に使用できます.
    DequeQueueStackofferLast()offer()push()pollLast()xpop()pollFirst()poll()xpeekFirst()peek()xpeekLast()xpeek()

    Iterator, ListIterator, Enumeration


    Enumerationは旧バージョン、ListIdentratorはIdentratorのパフォーマンス向上

    Iterator


    奇形機インタフェースは、セットに格納された各要素にアクセスする機能を有する.
    booleanhasNext()が取得する要素がまだ存在することを確認します.ObjectNext()は次の要素を取得します.void remove()next()で読み込まれた要素を削除
    List list = new ArrayList();
    Iterator it = list.iterator;
    
    while(it.hasNext()) {
    	System.out.println(it.next());
    }

    ListIterator


    ListIdentratorは、Identratorに追加された双方向クエリー機能であり、ArrayListやLinkedListなどのListインタフェースを実現する集合でのみ利用可能である.
    メソッド説明booleanhasMoreElement()検索する要素があるかどうかを確認し、Object nextElement()を取得します.void remove()next()で読み込まれた要素削除オブジェクトpreved()は、前の要素を読み込みます.int previousIndex()は、前の要素のインデックスを返します.

    Arrays


    配列のコピー-copyOf()、copyOfRange()
    int[] arr = {0, 1, 2, 3, 4};
    int[] arr2 = Arrays.copyOf(arr, arr.length);
    int[] arr3 = Arrays.copyOfRange(arr, 2, 4) // 2이상 4미만
    埋め込み配列-fill()、setAll()
    int[] arr = new int[5];
    Arrays.fill(arr, 9); // 9로 배열 채우기
    setall()は、関数化インタフェースを実装するオブジェクトまたはラムダ式をパラメータとして指定する必要があります.
    Arrays.setAll(arr, () -> (int)(Math.random() * 5) + 1);
    配列ソート、検索-ソート()、binarySearch()
    int[] arr = {3, 2, 0, 1, 4};
    Arrays.sort(arr);
    int idx = Arrays.binarySearch(arr, 2);
    タイルリストに変換-asList(オブジェクト...a)
    List list = Arrays.asList(new Integer[]{1, 2, 3, 4, 5}); // list = [1, 2, 3, 4, 5]
    List list = Arrays.asList(1, 2, 3, 4, 5) // list = [1, 2, 3, 4, 5]

    Comparator, Comparable


    Arrays.sort()もCharaterClass Compareableの実装に従ってソートされる.
    クラスにCompareableが実装されている場合は、クラスがソート可能であることを示します.
    値が比較オブジェクトより小さい場合は、負の値が0の場合は1を返します.
    デフォルトでは、Comparentは昇順、降順またはその他の基準でソートする場合はCompareatorを使用して基準を作成します.
    StringのComparableはデフォルトでアルファベット順に並べ替えられていますが、逆順に並べば、
    class Decending implements Comparator {
    	public int compare(Object o1, Object o2) {
        	if (o1 instanceof Comparable && o2 instanceof Comparable) {
            	Comparable c1 = (Comparable)o1;
                Comparable c2 = (Comparable)o2;
                return c1.compareTo(c2) * -1; // 기본 정렬의 역방향
            }
            return -1
        }
    }
    いいですよ.compare 매개변수가 Object라서 Comparable로 형변환을 해야한다.

    HashMap


    Mapでは,ハッシュストレージkey,valueを用いて大量のデータを検索し,優れた性能を示した.
    メソッドは、boolean containsKey(ObjectKey)HashMapに指定したキーが含まれているかどうかを示します.Set entrySet()HashMapに格納されているキーと値は、Setにエントリとして保存され、Set keySet(キー)をインポートしてすべてのキーで保存されているSetはput(キー、値)を返し、remove(キー)を入れます.このキーオブジェクトはCollection値()を削除してすべての値をセットに変換します.

    TreeMap


    HashMapはパフォーマンスが優れていますが、検索範囲やソートが必要な場合は使用します.
    メソッドは、firstEntry()の最小のキーと値の2つの戻りfirstKey()の最小のキーがlastEntry()の最大のキーと値の2つの戻りlastKey()の最大のキーを返すことを示します.