2012-10-26 76 views
1

我在hashMap中研究了我的密鑰的位置。 例子:從HashMap中檢索位置

HashMap<Integer, String> ht = new HashMap(); 
    ht.put(1, "c"); 
    ht.put(10, "b"); 
    ht.put(8, "r"); 

    System.out.println(ht); 

10位置3 HashMap,8位有2 ...

所以我有兩個問題:

  1. 如何中檢索這些位置HashMap類?
  2. 當我有很多元素,我使用hashMap來檢索職位或二進制搜索?
+5

有沒有這樣的事情在HashMap中的位置 – m0skit0

回答

13

HashMap不是排序或排序的Map實施,所以這裏沒有「職位」。

LinkedHashMap是有序的,TreeMap是排序的一個。

+0

好的,謝謝!以及如何進行二進制搜索或從LinkedHashMap/TreeMap中找到一個位置? – Mehdi

+0

二進制搜索僅對已排序的集合起作用。 –

+0

好的!但複雜性最好如何?在簡單表上使用Binary seach或使用LinkedHashMap/TreeMap?找到一個位置 – Mehdi

2

哈希映射沒有排序,所以在哈希映射中沒有真正的位置概念。如果您需要訂購/排序的地圖,請查看TreeMap或LinkedHashMap。