Quel est le meilleur moyen de convertir une Liste<Long> objet à long tableau[] en java?
Est-il un utilitaire méthode pour convertir une liste de types Numériques pour tableau de type primitif?
En d'autres mots, je suis à la recherche d'une meilleure solution que ce.
private long[] toArray(List<Long> values) {
long[] result = new long[values.size()];
int i = 0;
for (Long l : values)
result[i++] = l;
return result;
}
- Voir stackoverflow.com/questions/3770289/...
- comme Vous voulez toujours votre solution de ne pas oublier
l.longValue();
longValue()
n'est pas nécessaire puisque il y a l'autoboxing
Vous devez vous connecter pour publier un commentaire.
Depuis Java 8, vous pouvez effectuer les opérations suivantes:
Ce qui se passe ici?
List<Long>
dans unStream<Long>
.mapToLong
sur elle pour obtenir unLongStream
mapToLong
est unToLongFunction
, qui a unlong
que le type de résultat.Long
à unlong
, écritl -> l
comme l'expression lambda fonctionne. LeLong
est converti enlong
là. Nous avons aussi pu être plus explicite et l'utilisationLong::longValue
à la place.toArray
, qui renvoie unlong[]
Long[]
à la place? C'est justevalues.toArray(new Long[0])
Google Goyave : La nostalgie.toArray(Collection)
Utilisation
ArrayUtils.toPrimitive(Long[] array)
de Apache Commons.long
tableau retourné:values.toArray(new long[0]);
compile 'org.apache.commons:commons-lang3:3.4'
(changement de la version la plus récente) pour ajouter l'Apache Commons bibliothèque (et sa classeArrayUtils
).Je n'ai pas de rappel au sujet de certains indigènes méthode qui fera que, mais quel est le problème avec la création d'une auto un ;-).