Mapの遍歴とソート

11955 ワード

引用:集合はjavaの比較的重要な知識点であり、集合の遍歴は特に重要である.相対的に、Mapは集合の中で分かりにくい部分なので、今日はMapの遍歴とソートについてお話しします.
Mapの遍歴
  • の比較的簡単な遍歴方法は、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));
    }
    
  • はMapを通過する.EntrySet()はmap:Map.entrySet()メソッドは、地図の集合ビュー(Set(Map.Entry))
  • を返す.
    for(Map.Entry<String, String> entry : map.entrySet()){  //         
       System.out.println("key:"+entry.getKey()+","+"value:"+entry.getValue());
    }
    
  • 反復器によるMap:
  • の遍歴
      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クラスによるソート: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);
    });
    
    
  • Mapはvalueでソート:Comparatorインタフェースを実装し、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();
    			}		   
    		   });