Есть ли способ объединить несколько ArrayLists
?
например:
ArrayList<Integer> a
ArrayList<Integer> b
ArrayList<Integer> c
ArrayList<Integer> d = a + b + c
где d - единственный ArrayList<Integer>
который содержит все значения a, b, c в их сохраненных порядках
Использовать addAll()
d.addAll(a);
d.addAll(b);
d.addAll(c);
Несчастливым аспектом структуры коллекций нет встроенной алгебры списков, но такие вещи, как Guava, могут предоставлять методы, которые действуют как операторы того типа, который вы хотите. Прямой код библиотеки java runtime будет выглядеть так:
List< Integer > d = new ArrayList<>( a );
d.addAll( b );
d.addAll( c );
addAll и конструктор ArrayList сделают трюк. (В Java нет переопределения оператора)
ArrayList<Integer> d = new ArrayList<Integer>(a);
d.addAll(b);
d.addAll(c);
Обратите внимание, что вы можете объявить все свои переменные как List или Collection, что является лучшей практикой. Таким образом вы привязаны к ArrayList как реализация коллекции.
Collection<Integer> d = new ArrayList<Integer>(a);