好吧,我想一切都在标题中......但为了更清楚地说明:我有一个哈希表,其中键是字符串(更准确地说:用户名),而值是个人类,比如说 UserData。所以很明显我使用这个表来检索一些知道用户名的 UserData;但有时我想取一个随机的用户名。这就是为什么我需要找到一种方法来在我的哈希表中选择一个随机键。我试过了: Random random = new Random(); int randomIndex = random.nextInt(myHashtable.size())-1; String[] names = null; myHashtable.keySet().toArray(names); String randomUser = names[randomIndex]; System.out.println(randomUser);但它不起作用(我因 Random 使用不当而出错,抱歉我现在没有详细信息)
2 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
问题一:nextInt(n)返回 0 到 n - 1 范围内的值。-1按您目前的做法添加 a会导致 -1 到 n - 2 范围内的值(这是错误的)
问题二:myHashtable.keySet().toArray(names);返回一个填充的数组keys(它不分配和填充数组)。
int len = myHashtable.size();
int randomIndex = random.nextInt(len);
String[] names = myHashtable.keySet().toArray(new String[len]); // sizing the
// array is optional, but you have the length - and if you don't specify it
// then it will be re-computed.
添加回答
举报
0/150
提交
取消