2012-10-26 77 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。