2015-04-20 4 views
-6

Я пытаюсь создать пустую коллекцию, но, видимо, collection.emptySet(), по-видимому, не так? Google предлагает мне создать новый экземпляр вместо ... Как создать новый экземпляр коллекции?Как создать новый экземпляр коллекции

+1

Начало здесь https://docs.oracle.com/javase/tutorial/collections/ –

+0

Существует множество типов коллекций ('List',' Set', 'Map') и разных реализаций для каждого из них. Используйте конструктор из того, который вам нужен. – Bubletan

+1

Почему вам не нравится 'Collections.emptySet()'? Что с этим не так? – talex

ответ

6

Collections#emptyXyz, в этом случае Collections#emptySet, возвращает непреложной пустой коллекции для определенного интерфейса. Если вы хотите/нужно инициализировать коллекцию, просто сделать это следующим образом:

Set<YourClass> set = new HashSet<>(); //or choose another implementation 

В этом случае set будет инициализирован и пуст, а затем вы можете добавить в него данные. Если эта переменная является полем в классе, а затем инициализировать его в конструкторе, а не в качестве локальной переменной:

public class Foo { 
    Set<YourClass> set; 
    public Foo() { 
     set = new HashSet<>(); 
    } 
} 

В будущем, пожалуйста, обратитесь к документации первой.

+1

не поощряйте эти вопросы с ответами .... :( –

+0

@JordiCastilla, если вы читаете вопрос, в основном спрашивают, почему «Коллекции» # emptySet' не будет работать, как ожидалось. И IMHO имена этих методов запутывают, кстати :), я думаю, что они должны быть 'Collections # emptyImmutableXyz'. –

+0

* Я пытаюсь создать пустую коллекцию, но, видимо, collection.emptySet(), по-видимому, не так? * Это означает, что OP не предпринимал никаких усилий, чтобы читать о 'Collections' либо об управлении объектами' Java'. –

Смежные вопросы