Chargement...

Types Wrapper en Java

Créez un ArrayList<Integer> nommé nums, appelez nums.add(9); puis nums.add(4);, et imprimez nums.get(0). Compilez Crate.java et lancez java Crate. L’écran doit montrer une ligne : 9. Entre les chevrons se trouve Integer, pas int. Stocker des entiers dans une liste via un type Wrapper — pour que la collection puisse contenir des objets — est ce que cette page enseigne.

Pourquoi la liste a besoin d’Integer

Sur la page iterating, la liste retenait des mots String. Un ArrayList stocke des objets. Le type primitif int n’est pas un objet. Le type Wrapper Integer est la forme objet d’un nombre entier. À l’intérieur des chevrons vous écrivez Integer. Quand vous appelez add(9), Java peut emboîter le primitif 9 en Integer pour vous sur cette page. Ce boxing silencieux suffit pour le fichier d’enseignement.
Ouvrez Crate.java. Gardez le nom de classe publique Crate pour qu’il corresponde au nom de fichier. Supprimez les restes de for (String t : tags), les adds oak et pine, les démos Lane et tout reste de HashSet ou de map. Supprimez aussi tout Scanner ou nextLine. Le programme ne doit pas attendre que vous tapiez.
Près du haut, au-dessus de public class Crate, écrivez :
import java.util.ArrayList;
Dans main, créez la liste :
ArrayList<Integer> nums = new ArrayList<Integer>();
N’écrivez pas ArrayList<int> — javac refuse cette forme. Gardez Integer des deux côtés de la ligne de création pour cette page. Puis ajoutez deux entiers sans guillemets :
nums.add(9);
nums.add(4);
Puis écrivez :
System.out.println(nums.get(0));
La case zéro contient 9. Enregistrez avant de compiler.

Crate Integer list get

java
import java.util.ArrayList;

public class Crate {
    public static void main(String[] args) {
        ArrayList<Integer> nums = new ArrayList<Integer>();
        nums.add(9);
        nums.add(4);
        System.out.println(nums.get(0));
    }
}

Depuis le dossier qui contient Crate.java, lancez javac Crate.java. Quand parenthèses, accolades, chevrons et points-virgules correspondent, javac n’écrit aucune ligne de son côté. Puis lancez java Crate — pas java Crate.java, et pas java Integer. Retirez la terminaison .java de la commande d’exécution.
Le programme doit imprimer une ligne et s’arrêter : 9. Il ne doit pas vous demander de taper. Si le terminal attend une saisie clavier, un appel nextLine d’un ancien exercice reste dans un fichier. Supprimez cet appel et gardez la création ArrayList<Integer>, les deux lignes add et System.out.println(nums.get(0));.
Parcourez l’exécution une fois. Java démarre à Crate.main. La liste grandit avec deux entiers emboîtés. L’appel get(0) renvoie le premier Integer. La ligne d’impression écrit 9. L’écran montre 9. Rien d’autre ne doit s’imprimer. Si vous voyez oak ou pine, une démo iterating de Lane tourne encore — passez à java Crate. Si vous voyez 4, vous avez imprimé get(1) par erreur ; gardez get(0) pour le fichier d’enseignement. Si vous voyez [9, 4], vous avez imprimé l’objet liste entier au lieu de la case zéro — gardez println(nums.get(0)) pour le parcours du quiz.
Si javac refuse ArrayList<int>, changez les crochets en Integer. Cette erreur est tout le point de la règle de type de cette leçon ; corrigez les crochets et compilez à nouveau. Si vous écrivez nums.add("9"); avec des guillemets, vous ajoutez un String, et javac refuse pour un ArrayList<Integer>. Gardez des chiffres nus pour cette page. Si l’import manque, javac ne trouve pas ArrayList — placez import java.util.ArrayList; au-dessus de la classe. L’orthographe Integer avec un I majuscule compte ; integer dans les crochets ne correspond pas au type Wrapper que Java attend ici.

Unbox vers un int simple

Une seconde démo lit la première valeur dans une variable primitive int, puis imprime cette variable. Java débôite l’Integer pour vous sur cette affectation.

Crate unbox to int

java
import java.util.ArrayList;

public class Crate {
    public static void main(String[] args) {
        ArrayList<Integer> nums = new ArrayList<Integer>();
        nums.add(9);
        nums.add(4);
        int n = nums.get(0);
        System.out.println(n);
    }
}

Compilez et lancez de la même façon. L’écran montre encore 9. La ligne int n = nums.get(0); sort la valeur Wrapper en int simple. Vous n’avez pas besoin d’appeler intValue() sur ce parcours débutant. Gardez le premier fichier d’enseignement sous la forme directe println(nums.get(0)). Utilisez le fichier unbox pour voir qu’une variable primitive peut tenir ce que la liste a stocké en Integer. Gardez le nom n exactement comme montré pour que la ligne d’impression reste courte. Ne mélangez pas un for-each sur des tags String dans ce second fichier — restez avec la liste de nombres et la seule affectation int.

Côte à côte

Un court tableau garde la règle de type claire.

📊 int vs Integer for lists

Piece On this page
list type ArrayList<Integer>
illegal ArrayList<int> — not allowed
add nums.add(9); — boxes to Integer
read nums.get(0) prints 9; may unbox to int n
Le tableau n’est qu’un rappel. Les pièces tapées que vous gardez sont l’import, ArrayList<Integer>, les deux adds et get(0).

Comparé aux listes String et aux primitifs seuls

Sur la page iterating, ArrayList<String> retenait des mots. Cela fonctionne encore. Cette page change le type d’élément en Integer pour que les entiers puissent s’asseoir dans une liste. Un for-each restant de Lane qui imprime oak et pine est une autre leçon. Pour cette page gardez Crate et imprimez 9 depuis get(0).
Un int x = 9; seul fonctionne encore sans aucune liste. Les wrappers comptent quand l’API des collections demande un type objet entre les chevrons. D’autres wrappers suivent la même idée plus tard — Double à côté de double, Boolean à côté de boolean — mais cette page garde Integer et int pour que l’écran reste un nombre clair. Vous n’avez pas besoin de mémoriser chaque nom de Wrapper aujourd’hui ; apprenez le motif une fois avec Integer à côté de int et la forme illégale ArrayList<int>.
Quand d’anciens fichiers Lane.java restent à proximité, laissez-les ou ne les supprimez que s’ils embrouillent quelle classe vous lancez. Lancez java Crate après avoir compilé la liste Wrapper de cette leçon. Le parcours Collections se termine ici avec ce 9 clair à l’écran avant que le cours tourne vers les erreurs et les fichiers.

Ce qui reste pour les exceptions

Cette page ferme le besoin Wrapper du module Collections pour les entiers dans une liste. Le module suivant ouvre les erreurs avec les exceptions. Restez ici sur cette page avec ArrayList<Integer> et get(0). N’inventez pas try ou catch comme exigence sur cette page.

Avant les exceptions

Vous pouvez importer java.util.ArrayList, créer ArrayList<Integer> nums, ajouter 9 et 4, et imprimer nums.get(0) pour voir 9. Vous pouvez aussi unboxer vers int n. Compilez Crate.java et lancez java Crate. Le type Wrapper a permis à la liste de retenir des entiers. La page suivante est exceptions, où un programme signale et traite des problèmes.
Gardez Integer entre les chevrons. Gardez les adds de nombres sans guillemets. Gardez get(0) pour l’écran d’enseignement 9. Ces trois habitudes sont le point de contrôle avant d’avancer. Quand l’écran montre 9 depuis la liste Integer après une compilation propre de Crate.java, les wrappers ont fait leur travail pour cette leçon et vous êtes prêt pour le sujet suivant.

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
5
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut