是否可以使用限制循环HashMap?

时间:2012-10-12 23:58:44

标签: java loops iterator hashmap

这是我的问题,因为我编程的程度比我以前更高级的java。所以今天我真的需要你的帮助!如何在砍掉HashMap时设置限制?我已经尝试了一些代码来限制一个。我的问题是我想从HashMap中获取一个Random条目,但是当我使用Random函数时这样:

Random rand = new Random();
int max = list.size();
int randomNumber = rand.nextInt(max);

问题是有时它返回'null'。 然后我尝试了这个:

Iterator it = list.entrySet().iterator();
while (it.hasNext()) {
if(!stop)
    Map.Entry pairs = (Map.Entry)it.next();
    atm = pairs.getValue();
    it.remove();
    stop = true;
}

但这会让我的节目崩溃。那么,有没有更好的方法来限制这个?

请带示例,这是最好的学习方式。 :)

2 个答案:

答案 0 :(得分:0)

如果你想从你的哈希映射中随机输入,试试这个单行:

Map.Entry<K, V> entry = new ArrayList<Map.Entry<K, V>>(map.entrySet()).get(Math.random() * map.size());

答案 1 :(得分:0)

如果list为null,则需要对其进行检查,如

int max = null != list ? list.size() : 0;

我希望这就是你要找的东西