如何在java中生成隨機字符,但隨機生成是在哈希表內。 我想隨機選擇X,O或I並將其放入randomChar中。從哈希表中選取隨機元素
char randomChar='O';
Hashtable ht = new Hashtable();
ht.put(1, 'X');
ht.put(10, 'O');
ht.put(12, 'I');
遺憾的英語不好,
如何在java中生成隨機字符,但隨機生成是在哈希表內。 我想隨機選擇X,O或I並將其放入randomChar中。從哈希表中選取隨機元素
char randomChar='O';
Hashtable ht = new Hashtable();
ht.put(1, 'X');
ht.put(10, 'O');
ht.put(12, 'I');
遺憾的英語不好,
如果沒有什麼特別的理由說明你爲什麼使用HashTable
來做到這一點,那麼我建議你只需要使用一個數組。爲了得到一個隨機字符,你剛剛生成0
到array.length - 1
一個隨機數:
char[] chars = { 'X', 'O', 'I' };
char randomChar = chars[new Random().nextInt(chars.length)];
但是,如果你想使用一個HashTable
,你應該使用HashMap
代替,而且你不應該使用原始類型來:
Map<Integer, Character> hashMap = new HashMap<>();
hashMap.put(1, 'X');
hashMap.put(10, 'O');
hashMap.put(12, 'I');
的第一步,得到一個隨機Character
是從HashMap
得到所有Character
S的:
Collection<Character> characters = hashMap.values();
的Collection
類然而,這並不能讓我們與索引訪問集合,所以我們需要從它構造List
:
List<Character> characterList = new ArrayList<>(characters);
我們從中得到List
隨機字符,你可以生成一個隨機號碼用作索引。要做到這一點,你可以使用Random
類:
Character randomChar = characterList.get(randomIndex);
要做到這一切在一條線,你可以這樣做::
Random random = new Random();
int randomIndex = random.nextInt(hashMap.size());
最後你用這個指標得到的List
隨機Character
Character randomChar = new ArrayList<>(hashMap.values()).get(new Random().nextInt(hashMap.size()));
它工作完美 – Simo
給定一個Hashtable
提取按鍵與keySet()
,並把它作爲與toArray
數組。然後取一個範圍爲0
- size()-1
的隨機數,從數組中選取相應的元素並提取表中相關的值。
或提取值並隨機選擇一個與等效過程。
1)不要使用原始類型; 2)使用'HashMap'而不是'Hashtable'。 –
使用由三個值{1,10,12}組成的數組,並生成隨機數以查找查找Map的鍵。 – SMA