マップインターフェイス(収集は続く)
概要概要
-
キーを値にマップするオブジェクト
-
マップに重複するキーを含めることはできません
-
各キーは最大で1つの値にのみマップできます
HashMap:
HashMapの要素のキー値を繰り返すことはできません。つまり、equalsメソッドが相互に呼び出され、戻り値はfalseです。配置順序は固定されていません。
特徴:
キーを繰り返すことはできません。値を繰り返すことができます(キーを繰り返すと、次のキーの値が前のキーの値を上書きします)
1つのキーが1つの値に対応します
1つのキーをnullにする
主要な重複排除メソッド:ハッシュコードメソッドとequalsメソッド
Mapaインターフェースの一般的な方法:
V put(Kキー、V値)
V remove(オブジェクトキー)
void clear()
ブールcontainsKey(オブジェクトキー)
ブールcontainsValue(オブジェクト値)
ブールisEmpty()
int size()
V get(オブジェクトキー)
keySet()を設定します
コレクションvalues()
Set <Map.Entry <K、V >> entrySet()
package day4;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HashMapDemo {
/*
Map;双列存储 键----值
键不能重复,值可以重复的
HashMap
TreeMap
HashTable
*/
public static void main(String[] args) {
/*
键去重复: hashcode() equals()
如果有重复的键,后面键的值会覆盖已经添加进去的值
允许有一个为 null 的键
*/
Map<String,String> map=new HashMap<>();
map.put("a","1");
map.put("a","2");
map.put("c","3");
map.put("d","4");
map.put("w","5");
//map.put(null,"a");
//map.clear();
//map.remove("a");
/*System.out.println(map.get("c"));
System.out.println(map.containsKey("a"));
System.out.println(map.size());
System.out.println(map.isEmpty());
System.out.println(map.containsValue("a"));*/
Collection<String> values =map.values();
System.out.println(values);
/*
遍历1
Set<String> keySet =map.keySet();
for( String s:keySet){
System.out.println(s);
}*/
/*
遍历2
Set<Map.Entry<String,String>> set=map.entrySet();
for( Map.Entry<String,String> entry:set) {
System.out.println(entry.getValue()+"=="+entry.getKey());
}
*/
System.out.println(map);
}
}
TreeMap:
TreeMapのすべての要素は、特定の固定された順序を維持します。順序付けられたMapを取得する必要がある場合は、TreeMapを使用する必要があり、キー値が配置されているクラスはComparableインターフェイスを実装する必要があります。
特徴:
-
自然な順序またはカスタムの順序でキーをトラバースするのに適しています。
-
TreeMapはキー値に従ってソートされ、キー値はComparableインターフェースを実装し、compareToメソッドをオーバーライドする必要があります。TreeMapは、compareToのロジックに従ってキーを並べ替えます。
-
キーは赤黒木構造であり、キーの並べ替えと一意性を保証できます
package day4;
import java.util.TreeMap;
public class TreeMapDemo {
public static void main(String[] args) {
TreeMap<String,String> map = new TreeMap<>();
map.put("a","1");
map.put("f","4");
map.put("e","3");
map.put("x","5");
map.put("b","2");
System.out.println(map);
}
}
TreeMapのすべての要素は、特定の固定された順序を維持します。順序付けられたMapを取得する必要がある場合は、TreeMapを使用する必要があり、キー値が配置されているクラスはComparableインターフェイスを実装する必要があります。
ハッシュ表:
同期を実現しました。
package day4;
import javafx.scene.control.TreeTableView;
import java.util.Hashtable;
public class TreeTableDemo {
public static void main(String[] args) {
Hashtable<String, String> tmap = new Hashtable<>();
tmap.put("a","1");
tmap.put("f","5");
tmap.put("e","4");
tmap.put("b","2");
tmap.put("c","3");
System.out.println(tmap);
}
}
マップコレクションの走査
- キーで値を見つける
すべてのキーのコレクションを取得します
キーのセットをトラバースし、各キーを取得します
キーで値を見つける
- キー値に従ってオブジェクトのキーと値を見つけます
すべてのキーと値のペアのコレクションを取得します
キーと値のペアオブジェクトのコレクションをトラバースし、各キーと値のペアオブジェクトを取得します
キー値に従ってオブジェクトのキーと値を見つけます
package day4;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class HashMapDemo {
public static void main(String[] args) {
Collection<String> values =map.values();
System.out.println(values);
//遍历1
Set<String> keySet =map.keySet();
for( String s:keySet){
System.out.println(s);
}
//遍历2
Set<Map.Entry<String,String>> set=map.entrySet();
for( Map.Entry<String,String> entry:set) {
System.out.println(entry.getValue()+"=="+entry.getKey());
}
System.out.println(map);
}
}