+1 me Battre, zut, il m'a fallu beaucoup trop de temps à faire défiler les ArrayUtils javadoc 🙂
🙂 Je l'ai ouvert dans mon eclipse (à l'aide d'un décompilateur)
C'est pas une grande importance, mais je n'aime pas la copie de la matrice à deux reprises. J'ai fini par rouler une fonction d'utilité à le faire directement.
Vous pouvez éviter la copie par la mise en œuvre d'un AbstractList via une statique de l'usine. Toutes les modifications apportées à la liste d'écrire sur le tableau et vice-versa.
Alors il suffit d'invoquer cette méthode pour créer le tableau. Vous aurez besoin d'utiliser l'interface List et non pas la mise en œuvre ArrayList dans votre déclaration.
Si vous pouvez changer le problème, vous pouvez utiliser des Tableaux.asList() directement et n'ont pas besoin de ce surplus de ArrayList de la construction.
Certes, nous voulons tous changer le problème de soemthing plus facile à résoudre? J'ai donc édité mon post pour refelect Wayne de la solution de nettoyage. Devez vous rappeler de lire si propres messages en premier.
Bozho la réponse est bonne, mais je n'aime pas la copie de la matrice à deux reprises. J'ai fini par rouler ma propre utilité méthode pour cela:
publicstaticArrayList<Long> convertArray(long[] array){ArrayList<Long> result =newArrayList<Long>(array.length);for(long item : array)
result.add(item);return result;}
Notez que dans bozho réponse, le tableau n'est pas copié deux fois, mais une seule fois : les Tableaux.asList ne retourne pas une copie, mais renvoie un wrapper autour de la table (le wrapper implémente la Liste de l'interface). La première copie est nécessaire car les Tableaux.asList ne fonctionne pas avec les types primitifs, d'où la première conversion à partir de primitives (long) pour le type d'objet (Long). Voir Wayne Young réponse pour le wrapper de la solution (pas de copie à tous).
À l'aide de ArrayUtils de apache commons-lang
ArrayUtils
javadoc 🙂Puisque d'autres l'ont suggéré les bibliothèques externes, voici la Google Goyave bibliothèques façon:
Pertinentes de la javadoc pour les Longues.
Vous pouvez éviter la copie par la mise en œuvre d'un
AbstractList
via une statique de l'usine. Toutes les modifications apportées à la liste d'écrire sur le tableau et vice-versa.Créer cette méthode quelque part.
Alors il suffit d'invoquer cette méthode pour créer le tableau. Vous aurez besoin d'utiliser l'interface
List
et non pas la mise en œuvreArrayList
dans votre déclaration.J'ai ramassé cette technique de l' guide de langue.
Remarque l'utilisation d'une
java.lang.Long
, paslong
Ne pas ajouter de tout tiers dépendances.
Bozho la réponse est bonne, mais je n'aime pas la copie de la matrice à deux reprises. J'ai fini par rouler ma propre utilité méthode pour cela:
Dans le JDK 1.8,avec Lambda et le Flux de l'API,On peut faire comme ceci:
à l'aide de Dollar vous pouvez faire cette conversion en 1 seule ligne de code:
vous pouvez également cocher facilement: