En Java est-il de toute façon d'avoir un constructeur qui acceptera un tableau ou une collection? J'ai joué avec cela pendant un moment mais je ne pense pas que ce soit possible.Java: Un constructeur ou une méthode qui va accepter array ou set ou list ou ...?
Je voudrais pouvoir initialiser MyClass
, comme ceci:
MyClass c = new MyClass({"rat", "Dog", "Cat"});
Et comme ceci:
LinkedList <String> l = new <String> LinkedList();
l.add("dog");
l.add("cat");
l.add("rat");
MyClass c = new MyClass(l);
C'est ce que MyClass ressemble. Que puis-je faire XXX pour que cela fonctionne? Je sais que je pourrais surcharger le constructeur, mais si je peux minimiser le code, ce serait génial non?
public class MyClass{
private LinkedHashSet <String> myList;
public MyClass(XXX <String> input){
myList = new LinkedHashSet <String>();
for(String s : input){
myList.put(s);
}
}
}
Nice one. Je ferais peut-être l'inverse, car obtenir un 'String []' sur une 'Liste' est moins coûteux que de construire une 'Liste ' basée sur 'String []'. –
BalusC
BalusC - vous vous trompez. Arrays.asList (..) renvoie une vue du même tableau qu'une liste non modifiable. Presque aucun coût. D'un autre côté, aller à String [] nécessite de copier toutes les références vers un nouveau tableau alloué – user44242
@usersmarvin: Merci pour les heads up! Soit dit en passant, pour avertir les utilisateurs des commentaires dans les questions/réponses qui ne sont pas les leurs, mettez un '@' devant le surnom, par ex. '@ BalusC'. Un minimum de 3 premiers caractères est requis pour trouver un match. – BalusC