Advertisement
CR7CR7

manipulateItems.

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