Créer une liste de primitive int?

Est-il possible de créer une liste de primitives int ou de primitives dans java comme suit?

List myList = new ArrayList(); 

Il semble que je puisse faire List myList = new ArrayList();

et ajoutez “int” dans cette liste. Mais alors cela voudrait dire que je peux append quelque chose à cette liste.

Est-ce que ma seule option est de créer un tableau d’int et de le convertir en une liste ou de créer une liste d’objects Integer?

En Java, le type de toute variable est soit un type primitif, soit un type de référence. Les arguments de type générique doivent être des types de référence. Les primitives n’étendant pas Object elles ne peuvent pas être utilisées comme arguments de type générique pour un type paramétré.

Au lieu de cela, utilisez la classe Integer qui est un wrapper pour int :

 List list = new ArrayList(); 

Si vous utilisez Java 7, vous pouvez simplifier cette déclaration en utilisant l’opérateur Diamond:

 List list = new ArrayList<>(); 

Avec l’autoboxing en Java, le type primitif int deviendra un Integer si nécessaire.

Autoboxing est la conversion automatique effectuée par le compilateur Java entre les types primitifs et leurs classes correspondantes.

Donc, ce qui suit est valide:

 int myInt = 1; List list = new ArrayList(); list.add(myInt); System.out.println(list.get(0)); //prints 1 

Non, aucune collection ne peut contenir des types primitifs lorsque Java Collection Framework est utilisé.

Cependant, il existe d’autres collections Java qui prennent en charge les types primitifs, tels que: Trove , Colt , Fastutil , Guava

Un exemple de la façon dont une arraylist avec ints serait lorsque la bibliothèque Trove utilisée est la suivante:

  TIntArrayList list= new TIntArrayList(); 

Les performances de cette liste, comparées à celles de ArrayList des entiers à partir de Java Collections, sont bien meilleures car la sortie automatique / désencapsulation de la classe Integer Wrapper correspondante n’est pas nécessaire.

Existe-t-il un moyen de créer une liste de primitives int ou de primitives dans java

Non tu ne peux pas. Vous pouvez uniquement créer une liste de types de référence, comme Integer , Ssortingng ou votre type personnalisé.

Il semble que je puisse faire List myList = new ArrayList(); et ajoutez “int” dans cette liste.

Lorsque vous ajoutez int à cette liste, elle est automatiquement encadrée dans le type wrapper Integer . Mais c’est une mauvaise idée d’utiliser des listes de types brutes , ou pour tout type générique d’ailleurs, dans un code plus récent.

Je peux append quelque chose à cette liste.

Bien sûr, c’est le désavantage d’utiliser le type brut. Vous pouvez avoir Cat , Dog , Tiger , Dinosaure , le tout dans un seul contenant.

Est-ce ma seule option, créer un tableau d’int et le convertir en une liste

Dans ce cas également, vous obtiendrez uniquement une List . Il est impossible de créer List ou des primitives.

Vous ne devriez pas être dérangé de toute façon. Même dans List vous pouvez append un type primitif int . Il sera automatiquement encadré, comme dans l’exemple ci-dessous:

 List list = new ArrayList(); list.add(5); 

Ce n’est pas possible. La spécification Java interdit l’utilisation de primitives dans les génériques. Cependant, vous pouvez créer ArrayList et appeler add(i) si i est un int grâce à la boxe.

Essayez d’utiliser ArrayIntList dans le framework apache. Cela fonctionne exactement comme un arraylist, sauf qu’il peut contenir des int primitifs.

Plus de détails ici –

https://commons.apache.org/dormant/commons-primitives/apidocs/org/apache/commons/collections/primitives/ArrayIntList.html

Vous pouvez utiliser des collections primitives disponibles dans les collections Eclipse . Les collections Eclipse contiennent List , Set , Bag et Map pour toutes les primitives. Les éléments dans les collections primitives sont conservés en tant que primitives et aucune boxe n’a lieu.

Vous pouvez initialiser une IntList comme ceci:

 MutableIntList ints = IntLists.mutable.empty(); 

Vous pouvez convertir de List en IntList comme ceci:

 List integers = new ArrayList<>(); MutableIntList ints = ListAdapter.adapt(integers).collectInt(each -> each); 

Note: Je consortingbue aux collections Eclipse.

Les collections utilisent des génériques qui prennent en charge les types de référence ou les wilcards. Vous pouvez cependant utiliser un wrapper Integer

 List list = new ArrayList<>(); 

Lorsque vous utilisez Java pour le développement Android, il est recommandé d’utiliser SparseIntArray pour empêcher la sélection automatique entre int et Integer .

Vous pouvez trouver plus d’informations sur SparseIntArray dans la documentation d’Android Developers et une bonne explication pour la mise en forme automatique sur Android entrez la description du lien ici

Est-il possible de convertir un tableau Integer [] en un tableau int []?

Cette omission flagrante de la part des librairies Java semble aboutir à presque tous les projets sur lesquels je travaille. Aussi pratique que la bibliothèque Trove puisse être, je ne parviens pas à parsingr les exigences précises pour répondre à LPGL pour une application Android qui relie statiquement une bibliothèque LGPL (le préambule dit ok, le corps ne semble pas dire la même chose). Et il est tout simplement incommode d’aller chercher les sources d’Apache pour obtenir ces classes. Il doit y avoir une meilleure façon.

Java Collection ne doit être que des collections d’objects.

 List integerList = new ArrayList(); 

Integer est la classe wrapper du type de données primitif int.

plus de classes wrapper JAVA ici !

U peut directement enregistrer et obtenir int vers / depuis integerList comme, integerList.add(intValue); int intValue = integerList.get(i)