我有一個像這樣獲取從哈希表中的鍵沒有值在Java中
hashtable = new Hashtable();
我怎樣才能從哈希表中的鍵(任何鍵都可以)不知道的值對導航鍵的哈希表?如果我可以從散列表中隨機選擇一個密鑰,那將是非常出色的,但我真正需要的只是從散列表中提取一個密鑰。
我有一個像這樣獲取從哈希表中的鍵沒有值在Java中
hashtable = new Hashtable();
我怎樣才能從哈希表中的鍵(任何鍵都可以)不知道的值對導航鍵的哈希表?如果我可以從散列表中隨機選擇一個密鑰,那將是非常出色的,但我真正需要的只是從散列表中提取一個密鑰。
hashtable.keySet()
將返回一組密鑰。要獲得隨機密鑰,請使用
Object[] keys = hashtable.keySet().toArray();
Object key = keys[new Random().nextInt(keys.length)];
你可以這樣做:
if (!hashtable.isEmpty()) {
Object firstKey = hashtable.keySet().iterator().next();
...
}
除了這個這個Hashtable
方法有正在同步的開銷和類本身已經過時了。考慮使用來自收集API的Map
,例如HashMap
或LinkedHashMap
。也可以使用通用類型而不是原始類型來避免投射。
您可以從Hashtable中獲取keySet()
。
它將返回所有將在您的情況下爲空的鍵的Collection
,因爲您沒有將任何內容放入Hashtable中。
使用hashtable.keys()方法獲取散列表的所有密鑰。
以下答案適用於您*問*的問題,但您爲什麼需要知道取得密鑰的值?你有沒有把鑰匙和價值的概念顛倒過來? – 2013-04-11 18:34:42