2014-02-26 68 views
0

作爲標題說,我在迭代數組的數組列表時遇到了問題。 這裏是我的定義:public static ArrayList<JTextArea[]> ta; 這是我如何從中讀取值:[JAVA]數組迭代器的arraylist迭代器

Iterator<JTextArea[]> i = Interface.ta.iterator(); 
     while(i.hasNext()) 
     { 
      JTextArea[] t = (JTextArea[]) i.next(); 
      ret += t[0].getText() + ", "; 
     } 

的JTextArea的陣列始終是四個元素的數組,並在此同時,我要讀的firstone的文本。 問題很簡單,「next()」方法爲我提供了每個JTextArea對象,而不是由4個JTextArea組成的完整數組。

任何方式來獲取Next()方法選擇所有的數組?

預先感謝

+0

您不必轉換,'i.next()'應該返回'JTextArea []'。你的'i.next'應該返回'JTextArea []' – nachokk

+1

**請**發佈你的代碼!至少有一個最小的自包含示例。你能用輸入和輸出使用'Iterator '告訴我們你的問題嗎? –

+0

如果'i.next()'在't'中沒有給你一個數組,你怎樣才能訪問't [0]'? – helderdarocha

回答

0

您應該能夠引用T [1],T [2],T [3]爲噸陣列中的其它3,所以你的代碼應該是:

ArrayList<JTextArea[]> ta=null; 
    // setup ta here; 

    String ret = ""; 
    Iterator<JTextArea[]> i = ta.iterator(); 
    while (i.hasNext()) { 
    JTextArea[] t = i.next(); 
    ret += t[0].getText() + ", "; 
    ret += t[1].getText() + ", "; 
    ret += t[2].getText() + ", "; 
    ret += t[3].getText() + ", "; 
    // or 
    for (int x=0; x<t.length; x++) { 
     ret += t[x].getText() + ", "; 
    } 
    } 
1

使用For Each而不是Iterator

for (JTextArea[] jTextAreaArray : ta) { 
// Use jTextAreaArray to do your process. 
} 

它是使用,而不是很簡單Iterator

獲取單個對象使用。

for (JTextArea[] jTextAreaArray : ta) { 
    for(JTextArea jTextArea : jTextAreaArray){ 
    // Do your Process with Individual jTextArea. 
    } 
} 
+0

這對你有幫助嗎? – ashokramcse