Вам нужно хранить его вне метода и статически.
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. Тогда вы обычно не используете списки с таким реализующим типом, вы обычно используете интерфейс, чтобы определить его тип, чтобы реализация была переключаемой. Вот для чего нужны интерфейсы.