2014-09-05 67 views
0

這是我的第一個方法。我有一個文件,我把它的內容添加到一個ArrayList。我可以打印,但我需要創建一個方法,將行號添加到每個字符串的開頭。我可以做到這一點以外的方法,但我有問題創建一個方法,返回一個arrayList,所以我可以在其他方法中使用更新的arrayList,然後我需要顯示更新的ArrayList。這是我的代碼。如何從方法返回ArrayList <String>?

我給第一方法輸出應該是 1鳥 2貓 等...

我給所述第二方法應該返回ArrayList中的元素以相反的順序輸出。 2貓 1鳥 等等

import java.util.*; 
import java.io.*; 




public class List 
{ 
public static void main(String[] args) throws IOException 
{ 
    int line =1; 
    ArrayList<String> textArray = new ArrayList<String>(); 
    ArrayList<String> newArray = new ArrayList<String>(); 
    File f = new File("src/List.txt"); 


    Scanner sc = new Scanner(f); 
    int num = 1; 
    while(sc.hasNext()) 
    { 


     textArray.add(sc.nextLine()); 


    } 


    numbered(textArray); 
    reverseOrder(textArray); 

} 

public static ArrayList<String> numbered(ArrayList<String> textArray) 
{ 
    ArrayList<String> results = new ArrayList<String>(textArray.size()); 
    String s; 
    int num = 1; 
    for (String r : results) 
    { 
     r = num + " " + results; 
     num++; 
    } 

    return results; 
} 

public static ArrayList<String> reverseOrder(ArrayList<String> textArray) 
{ 
    ArrayList<String> results = new ArrayList<String>(textArray.size()); 
    String s; 
    int num = 1; 
    for (String r : results) 
    { 

    } 

    return results; 
} 

回答

1

你返回正確的陣列,問題是,你正在創建新的對象你的方法裏面,而不是使用您作爲參數

的那些
ArrayList<String> results = new ArrayList<String>(textArray.size()); 

所以你迭代空數組。 內,您的for循環,你可以只迭代接收的ArrayList

for (String r : textArray) 

而且,你的結果陣列始終是空的,你應該添加新的元素是這樣的:

results.add(r); 

這可能工作:

public static ArrayList<String> numbered(ArrayList<String> textArray) 
{ 
    ArrayList<String> results = new ArrayList<String>(textArray.size()); 
    String s; 
    int num = 1; 
    for (String r : textArray) 
    { 
     r = num + " " + results; 
     num++; 
     results.add(r); 
    } 
    return results; 
} 
+0

我的輸出看起來像現在與您的建議。它幾乎是正確的。 1 [鳥,狗,貓,大象,老虎,斑馬] 4 [鳥,狗,貓,大象,老虎,斑馬] 4 [鳥,狗,貓,大象,老虎,斑馬] 5 [鳥,狗,貓,大象,老虎,斑馬] 6 [鳥,狗,貓,大象,老虎,斑馬] – user3242607 2014-09-05 22:42:41

+0

你的代碼現在看起來如何?修復它,並把它放在你的問題。 – 2014-09-05 23:05:00

0

您正在實例化'results'arraylist,並對其進行迭代。您需要爲初學者迭代textArray列表並調用results.add(「text」);

1

沒有測試過,但它應該可以工作。正如你所看到的非常簡單。最好的運氣和快樂的編碼。

public ArrayList<String> numList(ArrayList<String> originalArrayList) 
{ 
    ArrayList<String> newNumberedList = new ArrayList<String>(); 

    for(int i = 0;i< originalArrayList.size(); i++){ 

     int newi = i+1; 
     newNumberedList.add(newi+". "+originalArrayList.get(i)); 

    } 

    return newNumberedList ; 
}