0Pricing
Zig Academy · Leçon

Listes dynamiques avec ArrayList

Faites grandir un tampon géré par un allocateur.

Listes dynamiques avec ArrayList est une leçon Zig Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Zig Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Zig Academy comprend 4 leçons au total.

Un tampon extensible

Parfois, vous ne connaissez pas la taille à l’avance. std.ArrayList est un tableau dynamique qui grandit à mesure que vous ajoutez des éléments, avec un allocateur en soutien. 📈

Il est générique

ArrayList est un type générique : vous indiquez une fois le type des éléments et obtenez une liste composée exactement de ce type, avec une sécurité de typage complète.

const List = std.ArrayList(i32);

Le créer avec init

Vous construisez une liste avec init, en lui transmettant l’allocateur qu’elle utilisera pour grandir. L’allocateur reste associé à la liste pendant toute sa durée de vie.

var list = std.ArrayList(i32).init(allocator);

Toujours appeler deinit

Une liste possède de la mémoire sur le tas : associez donc init à deinit pour la libérer. Un defer placé juste après init rend ce nettoyage automatique.

var list = std.ArrayList(i32).init(a);
defer list.deinit();

Ajouter des éléments

Ajoutez un élément avec append. L’opération peut devoir agrandir le tampon, donc elle peut échouer et doit être appelée avec try.

try list.append(7);

Accéder aux données

Le contenu actuel se trouve dans la tranche .items. Vous lisez, indexez et parcourez cette tranche comme n’importe quelle autre tranche Zig.

for (list.items) |n| std.debug.print("{}\n", .{n});

Longueur et capacité

La longueur est list.items.len : elle indique le nombre de valeurs stockées. La capacité correspond à l’espace réservé, qui peut être supérieur afin d’éviter des agrandissements fréquents.

Réserver à l’avance

Si vous connaissez approximativement la taille nécessaire, appelez d’abord ensureTotalCapacity. Une seule réservation évite les réallocations répétées à mesure que la liste se remplit.

try list.ensureTotalCapacity(100);

Supprimer des éléments

Retirez le dernier élément avec pop, ou supprimez un élément situé au milieu en utilisant son indice. La liste réduit sa longueur, mais conserve sa capacité.

const last = list.pop();

Transférer la propriété

Appelez toOwnedSlice pour récupérer le tampon sous la forme d’une tranche ordinaire. La liste est vidée et vous devenez responsable de sa libération.

const slice = try list.toOwnedSlice();

Fondé sur les bases

ArrayList n’est finalement que alloc, une copie et free exécutés pour vous. Il montre jusqu’où des allocateurs explicites peuvent mener avec un type propre et réutilisable. ✅

Vérification rapide

Rappelez-vous ce que vous devez faire lorsqu’une ArrayList n’est plus utilisée.

Récapitulatif

Vous avez appris que std.ArrayList grandit dynamiquement avec un allocateur : init, append avec try, lecture de .items et appel systématique de deinit lorsque vous avez terminé. 🎯

Questions Fréquemment Posées

La leçon « Listes dynamiques avec ArrayList » est-elle gratuite ?

Oui — le texte complet de « Listes dynamiques avec ArrayList » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Zig Academy, passe à CoddyKit PRO. Le cours Zig Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Listes dynamiques avec ArrayList » ?

Faites grandir un tampon géré par un allocateur. Tu pratiques Zig Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Zig Academy ?

Aucune expérience préalable n'est requise. Zig Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Listes dynamiques avec ArrayList » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Zig Academy ?

Oui. Chaque leçon Zig Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi Zig n'a pas d'allocations cachées
  2. L'interface d'allocation
  3. alloc, free, create, destroy
  4. Listes dynamiques avec ArrayList
← Retour à Zig Academy