Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2015
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.44 KB | None | 0 0
  1. import java.util.Arrays;
  2.  
  3. public class ArrayList {
  4.  
  5.     private static Object[] array = new Object[16];
  6.     private int size = 0;
  7.  
  8.     public void add(Object e) {
  9.         if (size - array.length >= 0) {
  10.             ensureCapacity(size + 1);
  11.         }
  12.  
  13.         array[size++] = e;
  14.  
  15.     }
  16.  
  17.     public void add(int i, Object e) {
  18.  
  19.         if ((i >= size) || (i < 0)) {
  20.             throw new IndexOutOfBoundsException();
  21.         }
  22.         if (size - array.length > 0) {
  23.             ensureCapacity(size + 1);
  24.         }
  25.  
  26.         for (int j = size-1; j >= i; j--) {
  27.            
  28.             array[j+1] = array[j];
  29.         }
  30.         array[i] = e;
  31.         size++;
  32.     }
  33.  
  34.     public void clear() {
  35.         for (int i = 0; i < size; i++) {
  36.             array[i] = null;
  37.         }
  38.         size = 0;
  39.     }
  40.  
  41.     public boolean contains(Object e) {
  42.         if (e == null) {
  43.             for (int i = 0; i < size; i++) {
  44.                 if (array[i] == null) {
  45.                     return true;
  46.                 }
  47.             }
  48.         } else {
  49.             for (int i = 0; i < size; i++) {
  50.                 if (e.equals(array[i])) {
  51.                     return true;
  52.                 }
  53.             }
  54.         }
  55.         return false;
  56.     }
  57.  
  58.     public void ensureCapacity(int minCapacity) {
  59.         if (minCapacity > array.length) {
  60.             Arrays.copyOf(array, (minCapacity - 1) * 2);
  61.         }
  62.  
  63.     }
  64.  
  65.     public Object get(int i) {
  66.         if ((i >= size) || (i < 0)) {
  67.             throw new IndexOutOfBoundsException();
  68.         }
  69.         return array[i];
  70.     }
  71.  
  72.     public int indexOf(Object e) {
  73.  
  74.         if (e == null) {
  75.             for (int i = 0; i < size; i++) {
  76.                 if (array[i] == null) {
  77.                     return i;
  78.                 }
  79.             }
  80.         } else {
  81.             for (int i = 0; i < size; i++) {
  82.                 if (e.equals(array[i])) {
  83.                     return i;
  84.                 }
  85.             }
  86.         }
  87.         return -1;
  88.     }
  89.  
  90.     public boolean isEmpty() {
  91.         return size == 0;
  92.     }
  93.  
  94.     public Object remove(int i) {
  95.         if ((i >= size) || (i < 0)) {
  96.             throw new IndexOutOfBoundsException();
  97.         }
  98.         Object a = array[i];
  99.         for (int j = i + 1; j < size; j++) {
  100.             array[j - 1] = array[j];
  101.         }
  102.         array[size - 1] = null;
  103.         size--;
  104.  
  105.         return a;
  106.     }
  107.  
  108.     public boolean removeObject(Object e) {
  109.         int i = indexOf(e);
  110.         if (i != -1) {
  111.             remove(i);
  112.             // а извлеченный элемент остается в памяти?
  113.             return true;
  114.         }
  115.         return false;
  116.  
  117.     }
  118.  
  119.     public Object set(int i, Object e) {
  120.         if ((i >= size) || (i < 0)) {
  121.             throw new IndexOutOfBoundsException();
  122.         }
  123.         Object a = array[i];
  124.         array[i] = e;
  125.         return a;
  126.     }
  127.  
  128.     public int size() {
  129.         return size;
  130.     }
  131.  
  132.     public Object[] trimToSize() {
  133.  
  134.         Object[] newarray = new Object[size];
  135.         int i = 0;
  136.         while (array[i] != null) {
  137.             newarray[i] = array[i];
  138.             i++;
  139.         }
  140.         return newarray;
  141.  
  142.     }
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement