2014-09-05 69 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 ; 
}