2013-04-11 76 views
0

我有一個像這樣獲取從哈希表中的鍵沒有值在Java中

hashtable = new Hashtable(); 

我怎樣才能從哈希表中的鍵(任何鍵都可以)不知道的值對導航鍵的哈希表?如果我可以從散列表中隨機選擇一個密鑰,那將是非常出色的,但我真正需要的只是從散列表中提取一個密鑰。

+0

以下答案適用於您*問*的問題,但您爲什麼需要知道取得密鑰的值?你有沒有把鑰匙和價值的概念顛倒過來? – 2013-04-11 18:34:42

回答

1

hashtable.keySet()將返回一組密鑰。要獲得隨機密鑰,請使用

Object[] keys = hashtable.keySet().toArray(); 
Object key = keys[new Random().nextInt(keys.length)]; 
3

你可以這樣做:

if (!hashtable.isEmpty()) { 
    Object firstKey = hashtable.keySet().iterator().next(); 
    ... 
} 

除了這個這個Hashtable方法有正在同步的開銷和類本身已經過時了。考慮使用來自收集API的Map,例如HashMapLinkedHashMap。也可以使用通用類型而不是原始類型來避免投射。

1

您可以從Hashtable中獲取keySet()

它將返回所有將在您的情況下爲空的鍵的Collection,因爲您沒有將任何內容放入Hashtable中。

0

使用hashtable.keys()方法獲取散列表的所有密鑰。