Java - Как добавить список объектов в другой список объектов - PullRequest
0 голосов
/ 16 июня 2020

Сценарий: есть два следующих списка:

List<Object[]> listOne = null;
List<Object[]> listTwo = null;

aMethod (см. Внизу) вызывается в каждом списке, который возвращает список совместимых типов

listOne = aMethod(arg1, arg2, arg3);
listTwo = aMethod(argx, argy, argz);

Когда я пытаюсь

listOne.add(listTwo);

Я получаю сообщение об ошибке функции добавления. Рекомендует использовать addAll (), который я не могу использовать по своим причинам. Итак, кто-нибудь знает, как добавить список объектов [] к другому списку объектов []? Спасибо.

public List<Object[]> aMethod(a1, a2, a3) {
        List<Object[]> aList = service.getSomeinfo();
        return aList;
    }

Ответы [ 3 ]

1 голос
/ 16 июня 2020

Вы можете использовать функцию addAll списка, которая добавляет все элементы одного массива к другому.

listOne.addAll(listTwo);

listOne будет содержать элементы из обоих списков.
Вы можете добавить оба списка в третий список как:

List<Object[]> listThree = new ArrayList<Object[]>(listOne);
listThree.addAll(listTwo);

См .: https://docs.oracle.com/javase/8/docs/api/java/util/List.html#addAll - java .util.Collection-

1 голос
/ 16 июня 2020

Если вы не хотите использовать метод addAll (), тогда @Shubbi вы можете добавить второй список массива объектов через итерацию следующим образом:

for(Object[] o:listTwo){
    listOne.add(o);
}

Есть другой способ, который также очень эффективен с помощью Stream Api, если вы используете Java 8 или более позднюю версию

listOne = Stream.concat(listOne.stream(), listTwo.stream())
                .collect(Collectors.toList());  
1 голос
/ 16 июня 2020

Используйте Stream

listOne = Stream.concat(listOne.stream(), listTwo.stream())
                         .collect(Collectors.toList());

https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...