Подтвердить что ты не робот

Преобразование коллекции в список

Я хотел бы спросить: как вы преобразовываете Collection в List в Java?

4b9b3361

Ответ 1

Если вы уже создали экземпляр своего подтипа List (например, ArrayList, LinkedList), вы можете использовать метод addAll.

например.

l.addAll(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;
}