当列表大小未知时,在for循环内创建变量

时间:2013-02-22 22:22:03

标签: java android list http for-loop

如果这个问题很愚蠢,我会事先道歉但是我正在做一些事情,要求我实现一个循环来解析List MenuItem类型的对象。在循环内部,我需要将对象的名称存储在String变量中。

但我不确定List中有多少项,因此我不知道我需要多少variables项。我可以以某种方式在循环内动态声明变量??? 以下是我目前的代码:

for(int i = 0; i != orderItems.size(); i++){
                MenuItem item = orderItems.get(i);
                String itemName = item.getName();
            }

上面循环的原因是因为当它退出时我想通过itemName发布请求将所有Http变量发送到数据库。所以我可以传递像这样的参数:

    new RequestTask().execute(url, itemName1, itemName2, itemName3);

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

您可以使用varargs指定接受变量列表的方法。最后,它只是一个接受这些变量数组的方法。

结束了
  new RequestTask().execute(url, items);  // items is String[]

如果您不知道a priori字符串的数量,请将它们存储在列表中。然后,您可以获取列表中的项目数,创建足够大的数组并填充它。或者,使用可以做到这一点的方法toArray

答案 1 :(得分:1)

这是我在循环未知值时一直使用的ArrayList语法。然后我将其转换为普通数组以进行进一步处理。

List<String> itemNameList = new ArrayList<String>();
for(int i = 0; i != orderItems.size(); i++) {
    MenuItem item = orderItems.get(i);
    itemNameList.add(item.getName());
}
String[] itemNameArray = new String[itemNameList.size()];
itemNameList.toArray(itemNameArray);

答案 2 :(得分:0)

将它们放入某种列表中,即

    ArrayList<String> itemNameList = new ArrayList<String>();
    for(int i = 0; i != orderItems.size(); i++){ 
         MenuItem item = orderItems.get(i);
         String itemName = item.getName();
         itemNameList.add(itemName);
    }