Я хотел бы спросить: как вы преобразовываете Collection
в List
в Java?
Преобразование коллекции в список
Ответ 1
Если вы уже создали экземпляр своего подтипа List (например, ArrayList, LinkedList), вы можете использовать метод addAll.
например.
l.addAll(myCollection)
Многие подтипы списка также могут брать исходный набор в свой конструктор.
Ответ 2
Collection<MyObjectType> myCollection = ...;
List<MyObjectType> list = new ArrayList<MyObjectType>(myCollection);
Ответ 3
List list;
if (collection instanceof List)
{
list = (List)collection;
}
else
{
list = new ArrayList(collection);
}
Ответ 4
Создайте новый список и вызовите addAll
с помощью коллекции.
Ответ 5
Спасибо, что Sandeep положил его. Просто добавил нулевую проверку, чтобы избежать инструкции NullPointerException в else.
if(collection==null){
return Collections.emptyList();
}
List list;
if (collection instanceof List){
list = (List)collection;
}else{
list = new ArrayList(collection);
}
Ответ 6
вы можете использовать любое из двух решений.. но подумайте, нужно ли клонировать ваши коллекции, поскольку обе коллекции будут содержать те же ссылки на объекты
Ответ 7
Collection
и List
являются интерфейсами. Вы можете выполнить любую реализацию интерфейса List
: ArrayList LinkedList
и просто вернуть его обратно в Collection
, потому что он находится в верхней части
В примере ниже показано, что кастинг из ArrayList
public static void main (String args[]) {
Collection c = getCollection();
List myList = (ArrayList) c;
}
public static Collection getCollection()
{
Collection c = new ArrayList();
c.add("Apple");
c.add("Oranges");
return c;
}