Ainsi, normalement, ArrayList.toArray()
renverrait un type de Object[]
.... mais supposons que c’est un Arraylist
d’objet Custom
, comment puis-je make toArray()
pour retourner un type de Custom[]
plutôt que Object[]
?
Réponses
Trop de publicités?Comme ça:
List<String> list = new ArrayList<String>();
String[] a = list.toArray(new String[list.size()]);
C'est tentant de le faire comme:
String[] a = list.toArray(new String[0]);
mais l'implémentation interne réaffectera de toute façon un tableau correctement dimensionné, il est donc préférable de le faire dès le départ.
Si votre liste n'est pas correctement typée, vous devez effectuer un casting avant d'appeler toArray. Comme ça:
List l = new ArrayList<String>();
String[] a = ((List<String>)l).toArray(new String[l.size()]);
limc
Points
14557
Il n'est pas vraiment nécessaire de renvoyer Object[]
, par exemple: -
List<Custom> list = new ArrayList<Custom>();
list.add(new Custom(1));
list.add(new Custom(2));
Custom[] customs = new Custom[list.size()];
list.toArray(customs);
for (Custom custom : customs) {
System.out.println(custom);
}
Voici ma classe Custom
: -
public class Custom {
private int i;
public Custom(int i) {
this.i = i;
}
@Override
public String toString() {
return String.valueOf(i);
}
}
corsiKa
Points
39442