集合フレーム
『Javaの定式化』を学び整理しました
データ系列を標準化したクラス
List
データの重複を許可する順序付きデータセット ArrayList, LinkedList, Stack, Vector Set
無秩序なデータセットと重複データは許可されません. HashSet, TreeSet Map
キー値ペアからなるデータのセット.
順序は保持されず、キーは繰り返しが許可されず、値は繰り返しが許可されます. HashMap, TreeMap, Hashtable, Properties
方法 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に格納されているオブジェクトをオブジェクト配列に戻します.
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形式に戻ります.
アレイ 長所データ最速 をもたらす
短所サイズは変更できません. 非連続データを追加または削除する時間が長い.
LinkedListは案の不足を補った ArrayListと書き込みの違い(アクセス速度が速い) クラスはノードで構成されています.
これを補うために、ダブルリンクリストが表示されます.
1.順次追加・削除する場合、ArrayListはLinkedListより速く報告する
2.中間データを追加/削除する場合、LinkedListはArrayListより速い.
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.バッファ
Queueインタフェースの実装体の1つとして,格納順序にかかわらず優先度の高いものから始まる.記憶空間配列を用いて、hip資料構造の形式で各要素を記憶する.
Queueは一端のみ追加/削除できますが、Dequeは両端で追加/削除できます
インデックスはStack/queueの2つの用途に使用できます.
DequeQueueStackofferLast()offer()push()pollLast()xpop()pollFirst()poll()xpeekFirst()peek()xpeekLast()xpeek()
Enumerationは旧バージョン、ListIdentratorはIdentratorのパフォーマンス向上
奇形機インタフェースは、セットに格納された各要素にアクセスする機能を有する.
booleanhasNext()が取得する要素がまだ存在することを確認します.ObjectNext()は次の要素を取得します.void remove()next()で読み込まれた要素を削除
ListIdentratorは、Identratorに追加された双方向クエリー機能であり、ArrayListやLinkedListなどのListインタフェースを実現する集合でのみ利用可能である.
メソッド説明booleanhasMoreElement()検索する要素があるかどうかを確認し、Object nextElement()を取得します.void remove()next()で読み込まれた要素削除オブジェクトpreved()は、前の要素を読み込みます.int previousIndex()は、前の要素のインデックスを返します.
配列のコピー-copyOf()、copyOfRange()
Arrays.sort()もCharaterClass Compareableの実装に従ってソートされる.
クラスにCompareableが実装されている場合は、クラスがソート可能であることを示します.
値が比較オブジェクトより小さい場合は、負の値が0の場合は1を返します.
デフォルトでは、Comparentは昇順、降順またはその他の基準でソートする場合はCompareatorを使用して基準を作成します.
StringのComparableはデフォルトでアルファベット順に並べ替えられていますが、逆順に並べば、
Mapでは,ハッシュストレージkey,valueを用いて大量のデータを検索し,優れた性能を示した.
メソッドは、boolean containsKey(ObjectKey)HashMapに指定したキーが含まれているかどうかを示します.Set entrySet()HashMapに格納されているキーと値は、Setにエントリとして保存され、Set keySet(キー)をインポートしてすべてのキーで保存されているSetはput(キー、値)を返し、remove(キー)を入れます.このキーオブジェクトはCollection値()を削除してすべての値をセットに変換します.
HashMapはパフォーマンスが優れていますが、検索範囲やソートが必要な場合は使用します.
メソッドは、firstEntry()の最小のキーと値の2つの戻りfirstKey()の最小のキーがlastEntry()の最大のキーと値の2つの戻りlastKey()の最大のキーを返すことを示します.
コレクションフレームワーク
データ系列を標準化したクラス
コアインタフェース
List
データの重複を許可する順序付きデータセット
無秩序なデータセットと重複データは許可されません.
キー値ペアからなるデータのセット.
順序は保持されず、キーは繰り返しが許可されず、値は繰り返しが許可されます.
Collectionインタフェース
方法
指定したオブジェクトまたはアセンブリオブジェクトをアセンブリに追加
コレクション内のすべてのオブジェクトを削除します.
指定したオブジェクトまたはコレクション内のオブジェクトが含まれているかどうかを決定します.
同じ集合かどうかを比較します.
hashcodeを返します
集合が空であることを確認します.
集合した奇形を取り戻す.
指定したオブジェクトの削除
コレクションに格納されているオブジェクトの数を返します.
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は
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)
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)
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つとして,格納順序にかかわらず優先度の高いものから始まる.
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()の最大のキーを返すことを示します.
Reference
この問題について(集合フレーム), 我々は、より多くの情報をここで見つけました https://velog.io/@sksk713/컬렉션-프레임웍テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol