diff --git a/TP2/src/main/java/arraydoubleendedqueue/ArrayDoubleEndedQueue.java b/TP2/src/main/java/arraydoubleendedqueue/ArrayDoubleEndedQueue.java
index 51d0686ae6148e6715751ea818a060a3cb7f82ab..697253d5b5125df0f7417b87a2ee0c6f73ffe15d 100644
--- a/TP2/src/main/java/arraydoubleendedqueue/ArrayDoubleEndedQueue.java
+++ b/TP2/src/main/java/arraydoubleendedqueue/ArrayDoubleEndedQueue.java
@@ -3,19 +3,41 @@ package arraydoubleendedqueue;
 import deque.DoubleEndedQueue;
 
 public class ArrayDoubleEndedQueue<E> implements DoubleEndedQueue {
+    private Object[] elements;
+    private int size;
+    private int capacity;
+
+    public ArrayDoubleEndedQueue(int capacity) {
+        this.capacity = capacity;
+        elements = new Object[capacity];
+        this.size = 0;
+    }
+
     @Override
     public void addFirst(Object o) {
-
+        if(size < capacity) {
+            elements[size] = o;
+            size++;
+        }
+        else {
+            throw new IllegalStateException("Queue is full");
+        }
     }
 
     @Override
     public void addLast(Object o) {
-
+        if(size < capacity) {
+            elements[size] = o;
+            size++;
+        }
+        else {
+            throw new IllegalStateException("Queue is full");
+        }
     }
 
     @Override
     public Object removeFirst() {
-        return null;
+
     }
 
     @Override
diff --git a/TP2/src/test/java/arraydoubleendedqueue/ArrayDoubleEndedQueueTest.java b/TP2/src/test/java/arraydoubleendedqueue/ArrayDoubleEndedQueueTest.java
index 12a0b047a06e94638110e964540d2cefb57549cf..a812d1645b1f801d0b6a7bab9cec00894df598cd 100644
--- a/TP2/src/test/java/arraydoubleendedqueue/ArrayDoubleEndedQueueTest.java
+++ b/TP2/src/test/java/arraydoubleendedqueue/ArrayDoubleEndedQueueTest.java
@@ -49,6 +49,7 @@ public class ArrayDoubleEndedQueueTest {
     @Test
     void testRemoveFirst() {
 
+
     }
 
     @Test