2013-02-22 80 views
-2

如果此问题很蠢,但我正在处理某些事情,需要我执行一个循环来解析 MenuItem类型的对象。在循环内,我需要将对象的名称存储在String变量中。在列表大小未知时在列表中为循环创建变量

但是我不确定在List中有多少物品,因此不知道我需要多少个variables。我可以以某种方式在循环内部声明变量吗? 下面是我当前的代码:

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

原因上面的循环是因为当它离开我希望所有的itemName变量通过Http post请求发送到数据库。所以我可以通过这样的参数:

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

任何帮助将不胜感激!

+2

你的问题不相关,但我认为你应该改变'I = orderItems.size()''到I alfasin 2013-02-22 22:26:05

+0

大概的OrderItems是某种聚合 - Java有一个一堆 - Stack,Vector,ArrayList等使用其中之一。 – 2013-02-22 22:31:00

回答

2

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

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

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

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); 
    } 
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);