[英]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.