Как инициализировать объект List в Java?

Я не могу инициализировать List, как в следующем коде:

List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));

Я сталкиваюсь со следующей ошибкой:

Cannot instantiate the type List<String>.

Как я могу создать тип List<String>?

Решение

Если вы посмотрите АПИ Список вы'МР заметили, он говорит:

Interface List

Будучи "интерфейс" означает, что он не может быть создан (не новый список()` можно).

Если вы проверить эту ссылку, вы'll найти некоторые класса Эс, реализующиесписок`:

Все известные реализации занятия:

AbstractList, AbstractSequentialList, коллекции, AttributeList, коллекция copyonwritearraylist, связанный список LinkedList, RoleList, RoleUnresolvedList, стек, вектор

Тех, может быть инстанцирован. Используйте свои связи, чтобы узнать больше о них, т. е.: знать, что лучше подходит вашим потребностям.

3 наиболее часто используемых из них, вероятно, являются:

 List supplierNames1 = new ArrayList();
 List supplierNames2 = new LinkedList();
 List supplierNames3 = new Vector();

Бонус: Вы также можете инстанцировать его со значениями, более легким способом, используя массивы класс, следующим образом:

List supplierNames = Arrays.asList("sup1", "sup2", "sup3");
System.out.println(supplierNames.get(1));

Но учтите, вы не можете добавить больше элементов в этот список, так как он'ы фиксированного размера.

Комментарии (9)

Может'т создать экземпляр интерфейса, но есть несколько реализаций:

JDK2

List list = Arrays.asList("one", "two", "three");

JDK7

//diamond operator
List list = new ArrayList();
list.add("one");
list.add("two");
list.add("three");

JDK8

List list = Stream.of("one", "two", "three").collect(Collectors.toList());

JDK9

// creates immutable lists, so you can't modify such list 
List immutableList = List.of("one", "two", "three");

// if we want mutable list we can copy content of immutable list 
// to mutable one for instance via copy-constructor (which creates shallow copy)
List mutableList = new ArrayList(List.of("one", "two", "three"));

Плюс есть много других способов поставлены другие библиотеки, такие как гуава.

List list = Lists.newArrayList("one", "two", "three");
Комментарии (0)

Список - это интерфейс, вы не можете инстанцировать интерфейс, потому что интерфейс - это соглашение, какие методы должны иметь ваши классы. Для того, чтобы инстанцировать, вам нужны некоторые реализации (внедрения) этого интерфейса. Попробуйте использовать приведенный ниже код с очень популярными реализациями интерфейса List:

List supplierNames = new ArrayList(); 

или

List supplierNames = new LinkedList();
Комментарии (0)

Вам нужно будет использовать ArrayList или что-то подобное.

List - это интерфейс.

Используйте его:

import java.util.ArrayList;

...

List supplierNames = new ArrayList();
Комментарии (0)

List - это интерфейс, а вы не можете инициализировать интерфейс. Вместо этого инициализируйте реализующий класс.

Например:

List abc = new ArrayList();
List xyz = new LinkedList();
Комментарии (0)

В большинстве случаев требуется простой коллекции - реализация список

До версии JDK 7

List list = new ArrayList();

JDK 7 и позже вы можете использовать оператор алмазной

List list = new ArrayList();

Дополнительная информация написано здесь в документации по Oracle - сборники

Комментарии (0)

Список<строка> Есть только интерфейс, определения какой-то общий список. Необходимо обеспечить реализацию этого интерфейса списка. Двумя самыми распространенными являются:

Коллекции - реализован список с помощью массива

List supplierNames = new ArrayList();

Класса LinkedList - список реализуется как взаимосвязанная цепь элементов

List supplierNames = new LinkedList();
Комментарии (0)

В зависимости от того, какой список вы хотите использовать, что-то вроде

List supplierNames = new ArrayList();

должны получить вы собираетесь.

Списке-интерфейс, ArrayList является одной реализации интерфейса list. Более реализаций, которые могут лучше удовлетворить ваши потребности можно найти, прочитав javadocs по интерфейс list.

Комментарии (0)

Если вы просто хотите создать неизменяемые список<Т> С толькоодин** объект в нем, вы можете использовать этот API:

List oneObjectList = Collections.singletonList("theOnlyObject”);

Подробнее: документы

Комментарии (0)

Список-это интерфейс . Вы можете использовать список инициализации.

  List supplierNames = new ArrayList();

Таковы некоторые из impelemented список классов,

ArrayList, LinkedList, Vector

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

Комментарии (1)

На всякий случай, кто-то еще сохраняющиеся вокруг этого вопроса. Потому что, я вижу одного или двух новых пользователей снова задавать тот же вопрос, и все говорю затем , не вы можете'т сделать это, дорогая Пруденс, Помимо все ответы, данные здесь, я хотел бы предоставить дополнительную информацию - Да, вы можете на самом деле делать, список<число> Список = новый список<Interger и GT;(); Но на стоимость написания реализации всех методов интерфейса. Понятие-это не просто список<число> Список = новый список<Interger и GT;(); но

List list = new List(){

        @Override
        public int size() {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public boolean isEmpty() {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean contains(Object o) {
            // TODO Auto-generated method stub
            return false;
        }

..... и так далее (не могу написать все методы.)

Это пример анонимный класс. Его правильное, когда кто-либо заявляет , Нет, вы не можете создать экземпляр интерфейса, и что's вправо. Но вы никогда не можете сказать , Вы не можете писать список = новый список(); но, очевидно, вы можете делать это и, что'ы трудно заявление что вы можете'т сделать.

Комментарии (1)

Мы создали союз-к для упрощения задачи 1: Как конвертировать х в М (например, строка до целое). Строительство объекта также вид преобразования, поэтому у него есть простая функция для построения карта, список, набор:

``Ява импорт Ио.thedocs.Союз.к;

Список<строка> имена = до.список (фильм"Джон" В, С "Федор" - а); `` Пожалуйста, проверьте его - он имеет много других полезных функций

Комментарии (0)