#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.