From 61ac229692ccf1fb99f6f7759aad5c1ba925e3d4 Mon Sep 17 00:00:00 2001
From: Nahlane Ghina SAYEH <nahlane-ghina.sayeh@etu.univ-amu.fr>
Date: Wed, 25 Sep 2024 23:50:12 +0200
Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20de=20la=20classe=20Vector?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/java/Vector.java | 95 ++++++++++++++++-----------------------
 1 file changed, 38 insertions(+), 57 deletions(-)

diff --git a/src/main/java/Vector.java b/src/main/java/Vector.java
index be04428..49c7848 100644
--- a/src/main/java/Vector.java
+++ b/src/main/java/Vector.java
@@ -1,72 +1,53 @@
-import java.util.Arrays;
-
-/**
- * La classe Vector implémente un tableau d'entiers * de taille dynamique. Les éléments du
- * vecteur sont stockés dans un tableau. * La taille de ce tableau est au minimum doublée
- * à chaque fois qu'il est * nécessaire de le faire grossir.
- */
 public class Vector {
-
-    /**
-     * Tableau permettant de stocker les éléments du vecteur.
-     * Seuls les size premiers éléments font partie du vecteur.
-     * La taille de ce tableau est égale à la capacité du vecteur, c'est-à-dire,
-     * au nombre d'éléments maximum que le vecteur peut contenir sans
-     * avoir besoin d'allouer un nouveau tableau.
-     */
-    private int[] elements;
-
-    /**
-     * Nombre d'éléments présents dans le vecteur.
-     */
+    private int[] array;
     private int size;
 
-    /**
-     * Construit un vecteur de capacité initiale initialCapacity.
-     *
-     * @param initialCapacity Capacité initiale du vecteur
-     */
     public Vector(int initialCapacity) {
-        elements = new int[initialCapacity];
+        array = new int[initialCapacity];
         size = 0;
     }
 
-    public Vector() {
-        this(10);
-    }
-
-    /**
-     * Augmente la capacité du vecteur si nécessaire de façon
-     * à permettre le stockage d'au moins <code>minCapacity</code>
-     * éléments. S'il est nécessaire d'augmenter la capacité du vecteur,
-     * elle est au minimum doublée.
-     *
-     * @param minCapacity Capacité minimale à assurer
-     */
-    public void ensureCapacity(int minCapacity) {
-        int oldCapacity = elements.length;
-        if (oldCapacity >= minCapacity) return;
-        int newCapacity = Math.max(oldCapacity * 2, minCapacity);
-        elements = Arrays.copyOf(elements, newCapacity);
+    public void ensureCapacity(int capacity) {
+        if (array.length < capacity) {
+            int newCapacity = Math.max(capacity, 2 * array.length);
+            int[] newArray = new int[newCapacity];
+            System.arraycopy(array, 0, newArray, 0, size);
+            array = newArray;
+        }
     }
 
     public void resize(int newSize) {
         ensureCapacity(newSize);
-        this.size = newSize;
+        for (int i = size; i < newSize; i++) {
+            array[i] = 0;
+        }
+        size = newSize;
+    }
+
+    public int size() {
+        return size;
+    }
+
+    public boolean isEmpty() {
+        return size == 0;
     }
 
-    /**
-     * Retourne la capacité du vecteur.
-     *
-     * @return Capacité du vecteur.
-     */
-    public int capacity() {
-        return elements.length;
+    public void add(int value) {
+        ensureCapacity(size + 1);
+        array[size] = value;
+        size++;
     }
 
-    public int size() { return 0; }
-    public boolean isEmpty() { return false; }
-    public void add(int element) { }
-    public void set(int index, int element) {  }
-    public int get(int index) { return 0; }
-}
\ No newline at end of file
+    public void set(int index, int value) {
+        if (index >= 0 && index < size) {
+            array[index] = value;
+        }
+    }
+
+    public int get(int index) {
+        if (index >= 0 && index < size) {
+            return array[index];
+        }
+        return 0;
+    }
+}
-- 
GitLab