【学習日記】集合フレームワーク知識点まとめ(2)--Map
このセットの特徴は、キー値ペアを格納することです.一対一で貯金する.また、キーの一意性を保証します.
Mapコレクションの一般的な方法1、 を追加 put(K key,V value)は、そのキーに対応する元の値を返して要素を追加する場合、そのキーが同じである場合.その後に追加された値は、既存のキーの対応する値を上書きします.元のキーに対応する値を返します. putAll(Mapm)指定したマッピングからすべてのマッピング関係をこのマッピングにコピーする 2、 を削除 clear()このマッピングからすべてのマッピング関係 を除去する. remove(Object key)マッピング関係が1つしかないキー を削除3,判断 containsValue(Object value)にこの値が含まれているかどうかは、含まれている場合はtrue を返します. containsKey(Object key)にこのキーが含まれているかどうかは、含まれている場合はtrue に戻ります. isEmpty()が空かどうかはtrue を返します.4、 を取得 get(Object key)は、キーが存在するか否かを判断するために使用され得る. size()は、このマッピングにおけるキー値マッピング関係数 を返す. values()このマッピングに含まれる値を返すCollectionビュー Mapコレクションの2つの取り出し方法
1,SetkeySet:map内のすべてのキーをSetセットに格納します.setは反復器を備えているからです.したがって、map.getメソッドに従って、すべてのキーを反復的に取り出すことができます.各キーに対応する値を取得します.Map集合の取り出し原理:map集合をset集合に変換する.反復器で取り出します.
2,Set>entrySet:mapセットのマッピング関係をsetセットに格納します.この関係のデータ型は、Map.Entryであり、EntryはMapのstatic内部インタフェースです.彼にはgetKey,getValue,hashCode,equals,setValueなどの方法がある.取り出しプロセス:まず関係をSetコレクションに保存し、その後Set反復器で関係を取り出し、Map.Entryタイプに保存し、独自の方法で取り出します.
なぜEntryをMapの内部に定義するのですか?
Mapセットがあれば,キー値ペアがあれば,キー値のマッピング関係があるからである.関係はMap集合の内部事物に属する.また、このアイテムはMapコレクションの要素に直接アクセスします.
Mapのサブクラス
クラス#クラス#
データ構造
特長
その他
Hashtable
ハッシュ表
nullキーnull値は格納できません.このセットはスレッド同期です
効率が低く、キーとして使用されるオブジェクトはHashcodeとequalsを実装する必要があります.
HashMap
ハッシュ表
null値とnullキーの使用を許可します.このセットは同期しません.
効率が高くnullはキーや値として存在する
TreeMap
二叉木
スレッド非同期
mapセット内のキーをソートするために使用できます
mapコレクションはいつ使いますか?
データ間にこのマッピング関係がある場合は、まずmap集合を考えます.
同意要素コンパイラがequalsメソッドをデフォルトで使用しているかどうかを判断し、ソートはcompareToメソッドまたはcompareメソッドを使用します.必要に応じてequalsメソッドまたはcompareToメソッドまたはcompareToメソッドを自分で上書きすることができます.comparareToメソッドを上書きするにはComparableインタフェースを実装し、コンパレータを定義するにはComparatorインタフェースを実装し、Map構築メソッドのcomparareを上書きする必要があります.
複数の要素マッピング関係がある場合、mapネストを使用します.すなわち、A、B、Cにマッピング関係がある場合は、B、Cをmap 1に格納し、A、map 1をmap 2に格納する.
1つの要素が複数の要素をマッピングする場合、例えば、AがB 1,B 2,B 3と同時にマッピングされる場合.B 1,B 2,B 3をset/list集合に格納し,さらにAとset/listをmapに格納してマッピング関係を確立することができる.
本文はブロガーのオリジナル文章で、ブロガーの許可を得ずに転載してはならない.
Mapコレクションの一般的な方法
1,Set
HashMap<String, Integer> map= new HashMap<String, Integer>();
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();while(it.hasNext()){
String str = it.next();int a = map.get(str);
sop(str+"...."+a);
}
2,Set
HashMap<String, Integer> map= new HashMap<String, Integer>();Set<Map.Entry<String, Integer>> sme = map.entrySet();
Iterator<Map.Entry<String, Integer>> itme = sme.iterator();while(itme.hasNext()){
Entry<String, Integer> me = itme.next();
sop(me.getKey()+"..."+me.getValue());
}
なぜEntryをMapの内部に定義するのですか?
Mapセットがあれば,キー値ペアがあれば,キー値のマッピング関係があるからである.関係はMap集合の内部事物に属する.また、このアイテムはMapコレクションの要素に直接アクセスします.
Mapのサブクラス
クラス#クラス#
データ構造
特長
その他
Hashtable
ハッシュ表
nullキーnull値は格納できません.このセットはスレッド同期です
効率が低く、キーとして使用されるオブジェクトはHashcodeとequalsを実装する必要があります.
HashMap
ハッシュ表
null値とnullキーの使用を許可します.このセットは同期しません.
効率が高くnullはキーや値として存在する
TreeMap
二叉木
スレッド非同期
mapセット内のキーをソートするために使用できます
mapコレクションはいつ使いますか?
データ間にこのマッピング関係がある場合は、まずmap集合を考えます.
同意要素コンパイラがequalsメソッドをデフォルトで使用しているかどうかを判断し、ソートはcompareToメソッドまたはcompareメソッドを使用します.必要に応じてequalsメソッドまたはcompareToメソッドまたはcompareToメソッドを自分で上書きすることができます.comparareToメソッドを上書きするにはComparableインタフェースを実装し、コンパレータを定義するにはComparatorインタフェースを実装し、Map構築メソッドのcomparareを上書きする必要があります.
複数の要素マッピング関係がある場合、mapネストを使用します.すなわち、A、B、Cにマッピング関係がある場合は、B、Cをmap 1に格納し、A、map 1をmap 2に格納する.
1つの要素が複数の要素をマッピングする場合、例えば、AがB 1,B 2,B 3と同時にマッピングされる場合.B 1,B 2,B 3をset/list集合に格納し,さらにAとset/listをmapに格納してマッピング関係を確立することができる.
本文はブロガーのオリジナル文章で、ブロガーの許可を得ずに転載してはならない.