Конкатенация нескольких ArrayLists

1

Есть ли способ объединить несколько ArrayLists?

например:

ArrayList<Integer> a
ArrayList<Integer> b
ArrayList<Integer> c

ArrayList<Integer> d = a + b + c

где d - единственный ArrayList<Integer> который содержит все значения a, b, c в их сохраненных порядках

Теги:
list
arraylist
collections

3 ответа

6

Использовать addAll()

d.addAll(a);
d.addAll(b);
d.addAll(c);
2

Несчастливым аспектом структуры коллекций нет встроенной алгебры списков, но такие вещи, как Guava, могут предоставлять методы, которые действуют как операторы того типа, который вы хотите. Прямой код библиотеки java runtime будет выглядеть так:

List< Integer > d = new ArrayList<>( a );
d.addAll( b );
d.addAll( c );
2

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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню