Créer ArrayList de tableau - Stack Overflow

La réponse la plus simple est de faire:

Cela fonctionne très bien. Mais certaines mises en garde:

Lorsque la question demande « un objet de la classe ArrayList » Je pense qu'il est raisonnable de supposer la classe il se réfère est java.util.ArrayList. Arrays.asList retourne en fait un java.util.Arrays.ArrayList qui n'est pas un instanceof l'autre classe. Donc, une troisième mise en garde est que si vous essayez de l'utiliser dans un contexte exigeant qui précède, il ne fonctionnera pas. - Dave L. 24 juin '16 à 19h16







(Vieux fil, mais à seulement 2 cents comme aucune mention goyave ou d'autres libs et quelques autres détails)

Il est intéressant de souligner la façon dont goyave, ce qui simplifie grandement ces manigances:

Pour une liste Immuable

Utilisez la classe ImmutableList et son de () et copyOf () Méthodes d'usine (éléments ne peuvent pas être nuls):

Pour une liste Mutable

Utilisez la classe des listes et de ses méthodes d'usine newArrayList ():

S'il vous plaît noter également les méthodes similaires pour d'autres structures de données dans d'autres classes, par exemple dans les ensembles.

L'attraction principale pourrait être de réduire l'encombrement dû aux médicaments génériques pour la sécurité-type, comme l'utilisation des méthodes d'usine Goyave permettent aux types d'inférer la plupart du temps. Cependant, cet argument tient moins d'eau depuis Java 7 est arrivé avec le nouvel opérateur de diamant.

Mais ce n'est pas la seule raison (et Java 7 est pas partout encore): la syntaxe abrégée est également très pratique, et les méthodes initializers, comme on le voit ci-dessus, permet d'écrire du code plus expressif. Vous faites dans un appel Goyave ce qui se passe 2 avec les collections actuelles Java.

Pour une liste Immuable

Notez que le type retourné pour asList () est une liste à l'aide d'une mise en œuvre concrète de ArrayList, mais ce n'est pas java.util.ArrayList. Il est un type intérieur, qui émule un ArrayList mais en fait directement référence à l'ensemble passé et fait « écrire par » (les modifications sont reflétées dans le tableau).

Elle interdit les modifications par quelques-unes des méthodes de l'API de liste par voie d'une simple extension d'un AbstractList (donc, d'ajouter ou de supprimer des éléments non pris en charge), mais il permet d'appeler set () pour remplacer les éléments. Ainsi, cette liste n'est pas vraiment immuable et un appel à asList () doit être enveloppé avec Collections.unmodifiableList ().







Voir l'étape suivante si vous avez besoin d'une liste mutable.

Pour une liste Mutable

Comme ci-dessus, mais enveloppées avec une java.util.ArrayList réelle:

Pour convertir un tableau à un ArrayList, les développeurs font souvent:

Arrays.asList () retourne un ArrayList qui est une classe statique privée à l'intérieur des tableaux. il n'est pas la classe java.util.ArrayList. La classe a java.util.Arrays.ArrayList set (), get (), contient () méthodes, mais n'a pas de méthodes pour ajouter des éléments, de sorte que sa taille est fixe. Pour créer un vrai ArrayList, vous devez faire:

Le constructeur de ArrayList peut accepter un type de collection. qui est aussi un super type pour java.util.Arrays.ArrayList

répondit le 25 juin '14 à 07h20

Si nous voyons la définition de la méthode Arrays.asList (), vous obtiendrez quelque chose comme ceci:

Ainsi, vous pouvez initialiser arraylist comme ceci:

Remarque. chaque nouvel élément (int args) sera traitée comme objet individuel et peut être passé comme un var-args.

Ainsi, ce code est également utile de le faire

Depuis Java 8, il est plus facile de transformer:

Une autre façon simple est d'ajouter tous les éléments du tableau à une nouvelle ArrayList en utilisant une boucle for-each.

En java 9 vous pouvez utiliser

et la nouvelle façon de créer, au tableau est observableArrays

ainsi que la réponse est

qui est selon Oracle Documents

observableArrayList () Crée une nouvelle liste observable vide qui est soutenue par un arraylist. observableArrayList (points E.) crée une nouvelle liste de réseau observable avec des éléments ajoutés.

Même si il y a beaucoup de réponses parfaitement écrites à cette question, je vais ajouter mes entrées.

New ArrayList peut être créé de la manière suivante

Et ils soutiennent très bien toutes les opérations de ArrayList

Mais les opérations suivantes retourne juste une vue de la liste d'un ArrayList et non ArrayList réelle.

Par conséquent, ils donneront une erreur en essayant de faire quelques opérations ArrayList

Plus sur la liste de représentation array lien.

Façon la plus simple de le faire est en ajoutant le code suivant. Essayé et testé.

Vous pouvez le faire en java 8 comme suit

répondit le 7 juin à 12h14

répondit le 11 juin à 09h03

Code seulement des réponses sont mal vus en SO. S'il vous plaît ajouter quelques explications au profit des autres qui lisent votre code! - Arnav Borborah 11 juin à 15h42

La sortie est.
Bonjour
monde

Donc, ici je donnerai court exemple pour deux cas d'utilisation.

création de la collection Immuable. Lorsque vous ne voulez pas modifier l'objet de collection après la création

liste elementList = Arrays.asList (matrice)

liste elementList = new ArrayList(Arrays.asList (array));

répondu il y a 14 heures







Articles Liés