Как добавить два списка элементов одного типа в общий список в Java

#java

#java

Вопрос:

у меня есть один метод, который принимает List<?> я хочу два списка, я хочу добавить два списка в один общий список, но я не могу добавить, я пытался создать один список общего типа, но он не принимается.

Я попробовал это:

 List<Object> list = new ArrayList<>();
list.add(model.getfirstlist().getItems());                      
list.add(model.getSecondlist().getItems());
setListData(list)
  

Моя функция:

 public void setListData(List<?> list) {
       // print list
}
  

GetItems имеют одинаковый идентификатор поля, заголовок

setListData(model.getfirstlist().getItems()) // работает нормально

Моя функция похожа

 public void setListData(List<?> list) {
       // print list
}
  

Я пытаюсь добавить два списка в один список и передать его в

 singlelist = ( model.getfirstlist().getItems()  
model.getSecondlist().getItems())
setListData(singlelist);
  

Пожалуйста, подскажите мне, как я это сделаю.

Комментарии:

1. Вам нужен метод addAll списка.

2. да, @ VGR у нас есть два списка с одинаковым типом

Ответ №1:

Используйте метод addAll для сбора и перечисления:

 List<Item> list = new ArrayList<>();
list.addAll(model.getfirstlist().getItems());                      
list.addAll(model.getSecondlist().getItems());
setListData(list);
  

Ответ №2:

Вы можете создать List , который содержал бы в качестве элементов оба списка:

например

 List<Integer> listA = Arrays.asList(1,2,3,4,5);
List<Integer> listB = Arrays.asList(6,7,8,9);

List<List<Integer>> lists = Arrays.asList(listA, listB);
  

Затем, используя streams api, вы могли бы сгладить созданный вами список, попробуйте следующее:

 List<Object> flattenList = Stream.of(lists)
                                 .flatMap(x -> x.stream())
                                 .collect(Collectors.toList());
  

Если вы не можете использовать stream api, вы можете попробовать следующий подход:

 List<Integer> listA = Arrays.asList(1,2,3,4,5);
List<Integer> listB = Arrays.asList(6,7,8,9);

listA.addAll(listB);
  

Теперь listA будут также содержаться элементы listB .

Комментарии:

1. Спасибо за ответ, позвольте мне попробовать ваш ответ.

2. мы не можем использовать Stream API, есть какая-то проблема с версией stream API, есть ли у вас какое-либо другое решение.

3. @MARSH Какую версию Java вы используете? Stream API был вставлен в Java 8.

4. Я использую java 8, но когда я использую этот Android, возникает проблема с версией SDK, мы не можем использовать Stream API

5. у нас нет целочисленного типа, у нас есть тип элемента object.