0

我想从 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));
    }

Nothing is printing out.

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

4

2 回答 2

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。所以条件为假,循环被跳过。

于 2013-02-16T19:12:25.637 回答
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 次迭代)。

本教程解释了for语句的工作原理。

于 2013-02-16T19:12:40.127 回答