Если проверить API для List
вы заметите , что говорит:
Interface List<E>
Будучи interface
средством, оно не может быть реализовано (нет new List()
возможности).
Если вы проверите эту ссылку, вы найдете некоторые из них, class
которые реализуют List
:
Все известные классы реализации:
AbstractList
, AbstractSequentialList
, ArrayList
, AttributeList
, CopyOnWriteArrayList
, LinkedList
, RoleList
, RoleUnresolvedList
, Stack
,Vector
Те могут быть созданы. Используйте их ссылки, чтобы узнать о них больше, IE: чтобы узнать, что соответствует вашим потребностям.
3 наиболее часто используемых из них:
List<String> supplierNames1 = new ArrayList<String>();
List<String> supplierNames2 = new LinkedList<String>();
List<String> supplierNames3 = new Vector<String>();
Бонус:
Вы можете также создать его со значениями, более простым способом, используя Arrays
class
следующее:
List<String> supplierNames = Arrays.asList("sup1", "sup2", "sup3");
System.out.println(supplierNames.get(1));
Но обратите внимание, что вы не можете добавлять больше элементов в этот список, так как это fixed-size
.
int[] a = {1,2,3}; System.out.println(Arrays.asList(a)); // [[I@70cdd2]
ArrayList
, используйтеnew ArrayList<>(Arrays.asList("sup1", "sup2", "sup3"))
Не могу создать интерфейс, но есть несколько реализаций:
JDK2
JDK7
JDK8
JDK9
Кроме того, есть множество других способов, предоставляемых другими библиотеками, такими как Guava .
источник
Список - это интерфейс , вы не можете создать экземпляр интерфейса, потому что интерфейс - это соглашение о том, какие методы должны иметь ваши классы. Чтобы создать экземпляр, вам нужны некоторые реализации (реализации) этого интерфейса. Попробуйте приведенный ниже код с очень популярными реализациями интерфейса List:
или
источник
Вам нужно будет использовать
ArrayList<String>
или такой.List<String>
это интерфейс.Использовать этот:
источник
Список - это интерфейс, и вы не можете инициализировать интерфейс. Вместо этого создайте класс реализации.
Подобно:
источник
Список - это просто интерфейс, определение некоторого общего списка. Вы должны предоставить реализацию этого интерфейса списка. Два наиболее распространенных являются:
ArrayList - список, реализованный через массив
LinkedList - список, реализованный в виде взаимосвязанной цепочки элементов
источник
В большинстве случаев вы хотите просто
ArrayList
- реализацияList
До версии 7 JDK
JDK 7 и позже вы можете использовать алмазный оператор
Дополнительная информация написана здесь Oracle документации - Коллекции
источник
В зависимости от того, какой список вы хотите использовать, что-то вроде
должен заставить вас идти.
List - это интерфейс, ArrayList - это одна из реализаций интерфейса List. Больше реализаций, которые могут лучше удовлетворить ваши потребности, можно найти, прочитав JavaDocs интерфейса List .
источник
Если вы просто хотите создать неизменяемый объект
List<T>
только с одним объектом, вы можете использовать этот API:Больше информации: документы
источник
Список - это интерфейс. Вы не можете использовать List для его инициализации.
Это некоторые из реализованных классов List,
Вы можете использовать любое из этого согласно вашему требованию. У каждого из этих классов есть свои особенности.
источник
На всякий случай, кто-нибудь еще задержится вокруг этого вопроса. Потому что я вижу одного или двух новых пользователей, снова задающих тот же вопрос, и все тогда говорят: « Нет, вы не можете этого сделать, дорогая Пруденс. Помимо всех ответов, приведенных здесь, я хотел бы предоставить дополнительную информацию - Да, вы действительно можете do, List list = new List (); Но за счет написания реализаций всех методов интерфейсов. Это не просто список список = новый список (); но
..... и так далее (не могу написать все методы.)
Это пример класса Anonymous . Это правильно, когда кто-то заявляет: нет, вы не можете создать экземпляр интерфейса, и это правильно. Но вы никогда не можете сказать, что вы НЕ МОЖЕТЕ написать List list = new List (); но, очевидно, вы можете сделать это, и это сложное утверждение, которое вы не можете сделать .
источник
List
. Скорее, он объявляет новый класс, который не имеет имени и реализуетList
, и во время выполнения создает новый объект вновь объявленного класса.Мы создали союз-to, чтобы упростить 1 задачу: как конвертировать
X
вY
(например,String
вInteger
). Построение объекта также вид преобразования поэтому она имеет простую функцию для построенияMap
,List
,Set
:Пожалуйста, проверьте это - у него много других полезных функций
источник