从ArrayList HashMap中获取多个随机值

时间:2013-02-16 19:11:49

标签: java random arraylist hashmap

我想从ArrayList

中获取一些特定数量的随机值
final ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

for (int i = 0; i == 4; i++) {

        index = random.nextInt(menuItems.size());
        HashMap<String, String> getitem = menuItems.get(index);
        System.out.println(getitem.get(KEY_NAME));
    }

什么都没打印出来。

循环中的代码可以工作,如果我在循环外使用它,但由于我需要多个值,我使用循环,它不起作用。

2 个答案:

答案 0 :(得分:5)

变化

for (int i = 0; i == 4; i++) { // start with i beeing 0, execute while i is 4
                               // never true

for (int i = 0; i < 4; i++) {  // start with i beeing 0, execute while i is
                               // smaller than 4, true 4 times

说明:

for循环具有以下结构:

for (initialization; condition; update)
在循环开始之前执行一次

initialization。在每次循环迭代之前检查condition,并在每次迭代后执行update

您的初始化为int i = 0;(执行一次)。您的条件为i == 4,这是错误的,因为i0。因此条件为假,并且跳过循环。

答案 1 :(得分:2)

for循环的结束条件被破坏:for (int i = 0; i == 4; i++)应为for (int i = 0; i < 4; i++)(4次迭代)或for (int i = 0; i <= 4; i++)(5次迭代)。

This tutorial解释了for语句的工作原理。