web-dev-qa-db-fra.com

jeter une liste dans une collection

j'ai du pb. Je veux lancer une liste à collectionner en Java

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

mais j'ai cette erreur

Impossible d'instancier le type Collection 

24
Mercer

List<T> implémente déjà Collection<T> - pourquoi devriez-vous en créer un nouveau?

Collection<T> collection = myList;

Le message d'erreur est tout à fait correct: vous ne pouvez pas instancier directement une interface. Si vous voulez créer une copie de la liste existante, vous pouvez utiliser quelque chose comme:

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

Le casting n'a jamais besoin d'une new:

Collection<T> collection = myList;

Vous ne rendez même pas explicite la distribution, car Collection est un super-type de List, donc cela fonctionnera comme cela.

2
Joachim Sauer

Il existe plusieurs solutions pour convertir une liste en une collection

Solution 1

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

Solution 2

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

Solution 3

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

Solution 4

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

Première collection est Interface de classe et vous ne pouvez pas instancier. API de collection

List Ver APi est également une classe d'interface.

Il peut être si

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

ver entrez la description du lien ici

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

Ne connaissant pas votre code, il est un peu difficile de répondre à votre question, mais compte tenu de toutes les informations ici, je pense que le problème est que vous essayez d'utiliser Collections.sort en transmettant un objet défini en tant que Collection et que le tri ne prend pas en charge. cette.

Première question. Pourquoi le client est-il défini de manière aussi générique? Pourquoi n'est-ce pas une liste, une carte, un ensemble ou quelque chose d'un peu plus spécifique? 

Si le client était défini comme une liste, une carte ou un ensemble, le problème ne se poserait pas car vous pourrez alors utiliser directement Collections.sort (client).

HTH

0
Mikezx6r