如何从方法返回ArrayList <string>?</string>

时间:2014-09-05 22:06:33

标签: java arraylist

这是我的第一种方法。我有一个文件,我将其内容添加到ArrayList。我可以打印就好了,但我需要创建一个方法,在每个String的开头添加行号。我可以在方法之外做到这一点,但是我在创建返回arrayList的方法时遇到问题,所以我可以在其他方法中使用更新的arrayList,然后我需要显示更新的ArrayList。这是我的代码。

第一种方法的输出应该是 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;
}

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分: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 ;
}

答案 2 :(得分:0)

您正在实例化&#39;结果&#39; arraylist,并迭代它。您需要为初学者迭代textArray列表并调用results.add(&#34; text&#34;);