【发布时间】:2013-09-13 08:51:59
【问题描述】:
我需要在 Java 中实现一个结构,它是一个键值列表(类型为 Integer-String),我想对其进行洗牌。
基本上,我想做这样的事情。
public LinkedHashMap<Integer, String> getQuestionOptionsMap(){
LinkedHashMap<Integer, String> shuffle = new LinkedHashMap<Integer, String> ();
if (answer1 != null)
shuffle.put(new Integer(1), answer1);
if (answer2 != null)
shuffle.put(new Integer(2), answer2);
if (answer3 != null)
shuffle.put(new Integer(3), answer3);
if (answer4 != null)
shuffle.put(new Integer(4), answer4);
Collections.shuffle(shuffle);
return shuffle;
}
但是,HashMap 不能被洗牌。
我可以从 hashmap 中随机获取一个键,然后返回链接的元素,但我确信这不是解决我的问题的最佳方案。
有没有更好的办法?
提前致谢。
【问题讨论】:
-
您希望整数作为键还是字符串作为键,因为您在代码中都有这两种方式。如果你想洗牌,你需要一个列表。
-
对不起,我更正了上面的代码。键是整数,值是字符串(我的答案的文本)。
-
谢谢我看到了那个帖子,但我不想修改键和值。我只想随机获取一对(键值)。
标签: java hashmap hashtable shuffle linkedhashmap