JavaのMapインターフェース
5955 ワード
目次
1、Map集合の特徴
2、Mapインターフェースでの常用方法
3、Map集合方式keySet方法
4、Map集合EntrySetオブジェクト使用方法遍歴
5、HashMapセットはカスタムオブジェクトと巡回を記憶します。
6、Linked HashMapの特徴
7、Hashtableの特徴
Mapセットは、Collectionセットとは異なり、Mapセットはキー(key)/値(value)のマッピングに基づいており、Collection内のセットは、要素が孤立して存在し、集合中の記憶要素にそれぞれの要素を用いて格納される。Mapのセットは、要素がペアになっています。各要素はキーと値の2つの部分から構成されています。キーで対応する値を探すことができます。Collection内の集合を単列集合と呼び、Map内の集合を双列集合と呼ぶ。なお、Mapのセットは重複キーを含んではいけません。値は重複します。各キーは一つの値しか対応できません。
1、Map集合の特徴各要素はペアで存在し、キーと値の2つの部分から構成されており、キーによって対応する値 を見つけることができる。キー(key値)は重複してはいけません。値は重複してもいいです。一つのvalue値は多くのkey値と対応関係を形成してもいいです。各建物は最大1つの値 にしかマッピングできません。二つのMapインターフェースの重要な実装クラス:HashMap類、Linked HashMap類 2、Mapインターフェースでの常用方法 get(Object key):指定キーに対応する値を取得する put(K key,V value):指定されたキーを値に対応してセットに追加し、指定されたキーがセットにない場合は、このキーに対応する値がなく、nullに戻り、指定されたキーをセットに追加し、セットに指定されたキーがセットに存在する場合は、セットに対応するキーの値(置換前の値)を返します。指定キーに対応する値を指定の新値 に置き換える。 Remove(Object key):指定されたキーから要素を削除し、削除された要素の値を返します。
Mapセットのエルゴードは、キーの値を探す方法によって実現されます。すなわち、要素の中のキーを通じて、キーに対応する値を取得します。ステップは以下の通りです。 は、Mapセットの方法keySetを呼び出し、すべてのキー(key値)をセット に格納する。はセットを巡回し、セット内のすべての要素(Map内のキー) を取得する。は、Mapセットget方法を呼び出し、キー(key値)によって値(value値) を取得する。
Mapクラスの設計の時に、ネストインターフェースを提供しました。Enttryはキーの対応関係をオブジェクトにパッケージ化しました。つまりキーの値はオブジェクトに対して、Mapの集合を遍歴する時に、キーの値のペアのオブジェクトから対応するキーと対応する値を取得できます。
EnttryはMapの内部インターフェースであり、Mapのサブクラスの内部クラスによって実現され、MapインターフェースのentrySet方法を使ってEnttryオブジェクトを返すことができます。 Entryは、Mapインターフェースで提供される静的内部ネストインターフェース である。関連方法 getKey()メソッド:Entryオブジェクトのキーを取得します。 getValue()メソッド:Entryオブジェクトの値を取得します。 entrySet()方法:Mapセット内のすべてのキーペアのオブジェクトを返すために、Setセットで に戻ります。
Map集合エルゴード方式のentrySet方法:は、集合中のマッピング関係オブジェクトEntrySetをSetセットに格納するMapセット方法entrySetを呼び出す。 反復Setセット が取り出したセットの要素は、マッピング関係オブジェクト である。マッピング関係オブジェクト方法でget Ket、getValueからキーペア を取得する。
HashMapセットを使用して、カスタムオブジェクトを保存します。このカスタムオブジェクトはキーとしてもいいし、値としてもいいです。
コードインスタンス(ここではPersonクラスを省略します) HashMapにカスタムオブジェクトを格納する場合、カスタムオブジェクトがキーとして存在する場合、オブジェクトの一意性を保証するためには、オブジェクトのhashCodeとequals方法を書き換える必要がある 。 Mapに保存されているkeyと取り出した順序が一致することを保証するためには、Linked HashMapのセットを使用して を格納することができる。
6、Linked HashMapの特徴 Linked HashMapはHashMapを継承し、反復の順序を保証することができる。 は、Mapインターフェース実現クラス である。の底のデータの結果のハッシュ表、特徴はハshMapと同じ です。 Hashtableはスレッドセキュリティセットであり、動作速度が遅い hashtable運命はVectorと同じで、JDK 1.2から、より先進的なhashMapによって に取って代わられます。 Hashtableはnull値、nullキー(HashMapはnull値、nullキー) を格納することができません。 hashtableのサブクラスProptiesは、よく使われている です。
1、Map集合の特徴
2、Mapインターフェースでの常用方法
3、Map集合方式keySet方法
4、Map集合EntrySetオブジェクト使用方法遍歴
5、HashMapセットはカスタムオブジェクトと巡回を記憶します。
6、Linked HashMapの特徴
7、Hashtableの特徴
Mapセットは、Collectionセットとは異なり、Mapセットはキー(key)/値(value)のマッピングに基づいており、Collection内のセットは、要素が孤立して存在し、集合中の記憶要素にそれぞれの要素を用いて格納される。Mapのセットは、要素がペアになっています。各要素はキーと値の2つの部分から構成されています。キーで対応する値を探すことができます。Collection内の集合を単列集合と呼び、Map内の集合を双列集合と呼ぶ。なお、Mapのセットは重複キーを含んではいけません。値は重複します。各キーは一つの値しか対応できません。
1、Map集合の特徴
public static void main(String[] args)
{
// Map
Map M = new HashMap<>();
//
M.put(" ","Tom");
M.put(" ","Tim");
M.put(" ","Rik");
System.out.println(M);
// key value
System.out.println(M.get(" "));
// key , key value
String val = M.remove(" ");
System.out.println(val);
System.out.println(M);
// Map , key value , key , null
System.out.println(M.put(" ","TTT")); //Tom
System.out.println(M);
}
3、Map集合方式keySet方法Mapセットのエルゴードは、キーの値を探す方法によって実現されます。すなわち、要素の中のキーを通じて、キーに対応する値を取得します。ステップは以下の通りです。
public static void main(String[] args)
{
// Map
Map M = new HashMap<>();
M.put(1,"a");
M.put(2,"b");
M.put(3,"c");
//1. Map keySet, (key ) Set
Set S = M.keySet();
//2. Set , Set ( Map (key ))
Iterator it = S.iterator();
while (it.hasNext())
{
// Map
Integer key = it.next();
//3. Map get , (key ) (value )
String value = M.get(key);
System.out.println(key + "=" + value);
}
}
もちろん、強化forを使うこともできます。for(String key : map.keySet())
{
Integer value = map.get(key);
System.out.println(key+"="+value);
}
4、Map集合EntrySetオブジェクト使用方法遍歴Mapクラスの設計の時に、ネストインターフェースを提供しました。Enttryはキーの対応関係をオブジェクトにパッケージ化しました。つまりキーの値はオブジェクトに対して、Mapの集合を遍歴する時に、キーの値のペアのオブジェクトから対応するキーと対応する値を取得できます。
EnttryはMapの内部インターフェースであり、Mapのサブクラスの内部クラスによって実現され、MapインターフェースのentrySet方法を使ってEnttryオブジェクトを返すことができます。
interface Map{
interface Entry{
}
}
Entryオブジェクトの特徴:Map集合エルゴード方式のentrySet方法:
public static void main(String[] args)
{
// Map
Map M = new HashMap<>();
M.put(1,"a");
M.put(2,"b");
M.put(3,"c");
//1. Map entrySet() Entrty Set :Set >
Set> S = M.entrySet();
//2. Set
Iterator> it = S.iterator();
while (it.hasNext())
{
//3. Set
Map.Entry entry = it.next();
//4. getKet, getValue
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key + "=" + value);
}
}
5、HashMapセットはカスタムオブジェクトと巡回を記憶します。HashMapセットを使用して、カスタムオブジェクトを保存します。このカスタムオブジェクトはキーとしてもいいし、値としてもいいです。
コードインスタンス(ここではPersonクラスを省略します)
public static void main(String[] args)
{
// Map
Map M = new HashMap<>();
M.put(1,new Person("Tom",18));
M.put(2,new Person("Tim",19));
M.put(3,new Person("Rik",20));
// for
//1. keySet
for(Integer key : M.keySet())
{
Person value = M.get(key);
System.out.println(key + "=" + value);
}
//2. entrySet
for(Map.Entry entry : M.entrySet())
{
Integer key = entry.getKey();
Person value = entry.getValue();
System.out.println(key + "=" + value);
}
}
6、Linked HashMapの特徴
public static void main(String[] args) {
LinkedHashMap link = new LinkedHashMap();
link.put("1", "a");
link.put("13", "a");
link.put("15", "a");
link.put("17", "a");
System.out.println(link);
}
7、Hashtableの特徴