HashMap TreeMap專題

刷leetcode的時候,經常性碰到需要使用HashMap或者TreeMap的場景,今天來總結一些它們的用法:


TreeMap

public class MapCase {
    public static void main(String[] args) {
        HashMap<Integer,Integer> maphash = new HashMap<>();
        TreeMap<Integer,Integer> maptree = new TreeMap<>();

        maptree.put(1,12);
        maptree.put(2,15);
        maptree.put(3,13);
        maptree.put(4,16);
        maptree.put(5,10);
    }
}

首先是如何遍歷上面的TreeMap ?

   // 遍歷
  Iterator iter0 = maptree.entrySet().iterator();
  while (iter0.hasNext()){
      Map.Entry entry =(Map.Entry) iter0.next();
      System.out.print("鍵:"+ entry.getKey());
      System.out.println(" 值: "+entry.getValue());
  }

其次,如果要按照value倒序輸出,該怎麼設計? 因爲TreeMap底層是紅黑樹,所以決定了從本身構建來考慮是不行的,所以另闢蹊徑,我們嘗試把它放到list中,對list排序規則進行更改。

 List<Map.Entry<Integer, Integer>> list = new ArrayList<>(maptree.entrySet());
 Collections.sort(list, (o1, o2) -> o2.getValue().compareTo(o1.getValue()));
 System.out.println("倒序:");
 for(int i = 0; i<list.size(); i++)
     System.out.println("鍵: "+list.get(i).getKey()+ "值:"+ list.get(i).getValue());

暫時先寫到這裏,後面會繼續補充的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章