簡體   English   中英

將數據移動到不同的方法

[英]Moving data to different methods

我試圖弄清楚如何在子方法中多次保存數據。 例如,下面的代碼正在創建字符串數組,然后將數組移動到數組列表五次。 如何讓程序保存所有字符串 5 次。 換句話說,如果我打印出數組列表newList如何獲得以下輸出?

word0、word1、word2、word3、word4、word0、word1、word2、word3、word4、word0、word1、word2、word3、word4、word0、word1、word2、word3、word4、word0、word1、word2、word3、word4。

public static void main(String[] args) {
    String[] list = new String[5];
    for (int i = 0; i < list.length; i++) {
        list[i] = "word" + i;
    }
    for (int i = 0; i < 5; i++) {
        experiment(list);
    }
}

public static void experiment(String[] list) {
    ArrayList<String> arrList = new ArrayList<>();
    for (int i = 0; i < list.length; i++) {
        arrList.add(list[i]);
    }
    saveItAll(arrList);
}

public static ArrayList<String> saveItAll(ArrayList<String> counter) {
    ArrayList<String> newList = new ArrayList<>();
    newList = counter;
    System.out.println(newList);
    return newList;

}

您需要將它存儲在方法之外並靜態存儲。

public class Test
{
    static List<String> newList = new ArrayList<>();

    public static void main(String[] args)
    {
        String[] list = new String[5];
        for (int i = 0; i < list.length; i++) {
            list[i] = "word" + i;
        }
        for (int i = 0; i < 5; i++) {
            experiment(list);
        }

        System.out.println(newList);
    }

    public static void experiment(String[] list)
    {
        List<String> arrList = new ArrayList<>();
        for (int i = 0; i < list.length; i++) {
            arrList.add(list[i]);
        }
        saveItAll(arrList);
    }

    public static void saveItAll(List<String> counter)
    {
        newList.addAll(counter);
    }
}

另一個詞是:您不需要 saveItAll 方法,因為 addAll 也在這里完成了這項工作。 然后你通常不使用帶有實現類型的列表,你通常使用接口來定義它的類型,這樣實現就可以切換。 這就是接口的用途。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM