2013-02-22 74 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);