wake-up-neo.com

eine Liste in eine Sammlung umwandeln

ich habe etwas Pb. Ich möchte eine Liste in Java in Collection aufnehmen

Collection<T> collection = new Collection<T>(mylList); 

aber ich habe diesen fehler

Kann die Typensammlung nicht instanziieren 

24
Mercer

List<T> implementiert bereits Collection<T> - warum müssen Sie einen neuen erstellen?

Collection<T> collection = myList;

Die Fehlermeldung ist absolut richtig - Sie können eine Schnittstelle nicht direkt instanziieren. Wenn Sie eine Kopie der vorhandenen Liste erstellen möchten, können Sie Folgendes verwenden:

Collection<T> collection = new ArrayList<T>(myList);
52
Jon Skeet

Casting benötigt niemals eine new:

Collection<T> collection = myList;

Sie machen die Besetzung auch nicht explizit, weil Collection ein Supertyp von List ist, also wird es genau so funktionieren.

2
Joachim Sauer

Es gibt mehrere Lösungen, um die Liste in eine Sammlung umzuwandeln

Lösung 1

List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;

Lösung 2

private static final Collection<String> c = new ArrayList<String>(
                                                Arrays.asList("a", "b", "c"));

Lösung 3

private static final Collection<Contact> = new ArrayList<Contact>(
                       Arrays.asList(new Contact("text1", "name1")
                                     new Contact("text2", "name2")));

Lösung 4

List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
0
SharpLu

First Collection ist eine Klassenschnittstelle und kann nicht instanziiert werden. Erfassungs-API

List Ver APi ist auch eine Schnittstellenklasse.

Es kann so sein

List list = Collections.synchronizedList(new ArrayList(...)); 

ver Linkbeschreibung hier eingeben

Collection collection= Collections.synchronizedList(new ArrayList(...)); 
0
Armando

Da Sie Ihren Code nicht kennen, ist es ein bisschen schwierig, Ihre Frage zu beantworten, aber aufgrund der hier enthaltenen Informationen glaube ich, dass das Problem darin besteht, dass Sie Collections.sort in einem als Collection definierten Objekt übergeben und sortieren nicht unterstützt Das.

Erste Frage. Warum ist der Kunde so generisch definiert? Warum handelt es sich nicht um eine Liste, eine Karte, einen Satz oder etwas genaueres? 

Wenn der Client als Liste, Karte oder Satz definiert wurde, hätten Sie dieses Problem nicht, da Sie Collections.sort (Client) direkt verwenden können.

HTH

0
Mikezx6r