Mapの遍歴とソート
11955 ワード
引用:集合はjavaの比較的重要な知識点であり、集合の遍歴は特に重要である.相対的に、Mapは集合の中で分かりにくい部分なので、今日はMapの遍歴とソートについてお話しします.
Mapの遍歴の比較的簡単な遍歴方法は、Mapのすべての はMapを通過する.EntrySet()はmap:Map.entrySet()メソッドは、地図の集合ビュー( を返す.反復器によるMap: の遍歴
Mapのソート TreeMapクラスによるソート: Mapはvalueでソート:Comparatorインタフェースを実装し、 を書き換える.
Mapの遍歴
keySet()
をkey
の方法で取得し、get(key)
を使用してkey
に対応するvalue
を取得することができる.Map<String, String> map = new HashMap<String, String>();
map.put("1","xinger");
//······
for(String s : map.keySet()){
System.out.println("key:"+s+","+"value:"+map.get(s));
}
Set(Map.Entry)
)for(Map.Entry<String, String> entry : map.entrySet()){ //
System.out.println("key:"+entry.getKey()+","+"value:"+entry.getValue());
}
Iterator(Map.Entry<String, String>) ite = map.entrySet().iterator();
while(ite.hasNext()){
Map.Entry<String, String> entry = ite.next();
System.out.println("key:"+entry.getKey()+","+"value:"+entry.getValue());z
}
Mapのソート
TreeMap
はデフォルトでkey
の昇順でソートされますが、ソート方式を変更するにはコンパレータ:Comparator
を使用してコンストラクタTreeMap(Comparator super K> comparator)
を使用する必要があります.汎用? super K
であることに気づき、本質はkey
でソートされます.Map<String,String> map = new TreeMap<String, String>(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
return o2.compareTo(p1);
});
compare(Object o1, Object o2)
メソッド List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
//
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){//
@Override
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue() - o1.getValue();
}
});