Advertisement
Georgi_Benchev

Untitled

Oct 25th, 2024
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.41 KB | None | 0 0
  1. package com.company.oop;
  2.  
  3. import java.util.Iterator;
  4.  
  5. public class MyListImpl<T> implements MyList<T> {
  6.  
  7.     public static final int DEFAULT_INITIAL_CAPACITY = 4;
  8.     int capacity;
  9.     int size = 0;
  10.     T[] array;
  11.  
  12.  
  13.     public MyListImpl(int initialCapacity) {
  14.         if (initialCapacity < 1) {
  15.             throw new IndexOutOfBoundsException();
  16.         }
  17.         this.capacity = initialCapacity;
  18.         array = (T[]) new Object[capacity];
  19.     }
  20.  
  21.     public MyListImpl() {
  22.         this(DEFAULT_INITIAL_CAPACITY);
  23.     }
  24.  
  25.     @Override
  26.     public int size() {
  27.         return this.size;
  28.     }
  29.  
  30.     @Override
  31.     public int capacity() {
  32.         return this.capacity;
  33.     }
  34.  
  35.     @Override
  36.     public void add(T element) {
  37.  
  38.         if (size >= capacity) {
  39.             doubleCapacityOfArray();
  40.         }
  41.         array[size] = element;
  42.         size++;
  43.     }
  44.  
  45.     private void doubleCapacityOfArray() {
  46.         capacity *= 2;
  47.         T[] tempArray = array.clone();
  48.         array = (T[]) new Object[capacity];
  49.         System.arraycopy(tempArray, 0, array, 0, tempArray.length);
  50.     }
  51.  
  52.     @Override
  53.     public T get(int index) {
  54.         if (index >= 0 && index < size) {
  55.             return array[index];
  56.         }
  57.         throw new IndexOutOfBoundsException();
  58.     }
  59.  
  60.     @Override
  61.     public int indexOf(T element) {
  62.  
  63.         for (int i = 0; i < size; i++) {
  64.             if (array[i].equals(element)) {
  65.                 return i;
  66.             }
  67.         }
  68.         return -1;
  69.     }
  70.  
  71.     @Override
  72.     public int lastIndexOf(T element) {
  73.         for (int i = size - 1; i >= 0; i--) {
  74.             if (array[i].equals(element)) {
  75.                 return i;
  76.             }
  77.         }
  78.         return -1;
  79.     }
  80.  
  81.     @Override
  82.     public boolean contains(T element) {
  83.  
  84.         for (int i = 0; i < size; i++) {
  85.             if (array[i].equals(element)) {
  86.                 return true;
  87.             }
  88.         }
  89.  
  90.         return false;
  91.     }
  92.  
  93.     @Override
  94.     public void removeAt(int index) {
  95.         if (index < 0 || index >= size) {
  96.             throw new ArrayIndexOutOfBoundsException();
  97.         }
  98.         // 1 2 3 4 0 0 0 0
  99.         for (int i = index; i < size - 1; i++) {
  100.             array[i] = array[i + 1];
  101.         }
  102.         size--;
  103.         array[size] = null;
  104.  
  105.     }
  106.  
  107.     @Override
  108.     public boolean remove(T element) {
  109.         //  1 2 3 4 null null null null
  110.         if (!contains(element)) {
  111.             return false;
  112.         }
  113.         int startIndex = indexOf(element);
  114.         removeAt(startIndex);
  115.         return true;
  116.  
  117.  
  118.     }
  119.  
  120.     @Override
  121.     public void clear() {
  122.         array = (T[]) new Object[capacity];
  123.     }
  124.  
  125.     @Override
  126.     public void swap(int from, int to) {
  127.         // 1 2 3 4 0 0 0 0
  128.         if (from < 0 || to < 0 || from >= size || to >= size) {
  129.             throw new IndexOutOfBoundsException();
  130.         }
  131.         T tempEl1 = array[from];
  132.         T tempEl2 = array[to];
  133.         array[from] = tempEl2;
  134.         array[to] = tempEl1;
  135.     }
  136.  
  137.     @Override
  138.     public void print() {
  139.         System.out.print("[");
  140.         for (int i = 0; i < size; i++) {
  141.             if (i == size - 1) {
  142.                 System.out.println(array[size - 1] + "]");
  143.             } else {
  144.                 System.out.print(array[i] + ", ");
  145.             }
  146.         }
  147.  
  148.     }
  149.  
  150.     @Override
  151.     public Iterator<T> iterator() {
  152.         return null;
  153.     }
  154. }
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement