我需要隨機訪問HashMap中的鍵。現在,我正在使用設置的toArray()方法設置即HashMap的keySet()返回並將其轉換爲String [](我的鍵是Strings)。然後我使用隨機來挑選String數組的一個隨機元素。隨機訪問HashMap鍵
public String randomKey() {
String[] keys = (String[]) myHashMap.keySet().toArray();
Random rand = new Random();
return keyring[rand.nextInt(keyring.length)];
}
這似乎應該有一個更優雅的方式來做到這一點! 我讀過以下文章,但看起來比我做這件事更令人費解。如果下面的解決方案更好,爲什麼這樣呢? Selecting random key and value sets from a Map in Java
這並不壞。只需三行代碼,並以易於使用/易於理解的方式整齊排列。 – Thilo
但是你應該首先檢查空的地圖。 – Thilo
我沒有讀過'隨機'變量應該保留在方法的外部,否則上面的代碼不會給出高水平的隨機性? quote:如果Random的兩個實例使用相同的種子創建,並且爲每個實例調用相同的方法調用序列,則它們將生成並返回相同的數字序列。 –