Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.21 KB | None | 0 0
  1. public class GrowingArray<T> {
  2.  
  3.     private static final int INITIAL_SIZE = 10;
  4.  
  5.     private int index = 0;
  6.  
  7.     private T[] store;
  8.  
  9.     // default konstruktor
  10.     public GrowingArray() {
  11.         // cast zu T ; Array initialisierung
  12.         store = (T[]) new Object[INITIAL_SIZE];
  13.     }
  14.  
  15.     public GrowingArray(int size) {
  16.         store = (T[]) new Object[size];
  17.     }
  18.  
  19.     public void add(T o) {
  20.         if (index >= store.length) {
  21.             grow();
  22.         }
  23.         store[index] = o;
  24.         index++;
  25.     }
  26.  
  27.     private void grow() {
  28.         T[] temp = (T[]) new Object[store.length * 2];
  29.         for (int i = 0; i < store.length; i++) {
  30.             temp[i] = store[i];
  31.         }
  32.         store = temp;
  33.     }
  34.  
  35.     public T get(int index) {
  36.         T res = store[index];
  37.         if (res == null) {
  38.             throw new IndexOutOfBoundsException();
  39.         }
  40.         return res;
  41.     }
  42.  
  43.     public int size() {
  44.         return index;
  45.     }
  46.  
  47.     @Override
  48.     public String toString() {
  49.         String s = "";
  50.         for (int i = 0; i < index; i++) {
  51.             s += store[i] + ", ";
  52.         }
  53.         return s.substring(0, s.length() - 2);
  54.     }
  55.  
  56.     public void remove(Object o) {
  57.  
  58.     }
  59.  
  60.     // Methode zum Löschen von Array Elementen
  61.     public void delete(int x) {
  62.         if (x > store.length) {
  63.             System.out.println("Das zu löschende Element existiert nicht");
  64.             return;
  65.         }
  66.  
  67.         T[] neu = (T[]) new Object[store.length];
  68.  
  69.         for (int i = 0; i < neu.length; i++) {
  70.             if (i < x)
  71.                 neu[i] = store[i];
  72.             if (i > x)
  73.                 neu[i - 1] = store[i];
  74.         }
  75.         store = shrink(neu);
  76.     }
  77.  
  78.     private T[] shrink(T[] array) {
  79.  
  80.         int nullcount = 0;
  81.  
  82.         for (int i = 0; i < array.length; i++) {
  83.             if (array[i].equals(null))
  84.                 nullcount++;
  85.         }
  86.  
  87.         if (nullcount > array.length / 2) {
  88.             T[] neu = (T[]) new Object[array.length / 2];
  89.             for (int i = 0; i < neu.length; i++)
  90.                 neu[i] = array[i];
  91.             return neu;
  92.         } else {
  93.             return array;
  94.         }
  95.     }
  96.  
  97.     // Aufgabe 2
  98.     public void clear() {
  99.         T[] neu = (T[]) new Object[store.length];
  100.         store = neu;
  101.     }
  102.  
  103.     // Aufgabe 3
  104.     public boolean contains(T o) {
  105.  
  106.         for (int i = 0; i < store.length; i++) {
  107.  
  108.             if (store[i].equals(o))
  109.                 return true;
  110.  
  111.         }
  112.         return false;
  113.     }
  114.  
  115.     //Aufgabe 4
  116.     public boolean containsAll(GrowingArray a) {
  117.         for (int i = 0; i < a.size(); i++) {
  118.             if (!contains((T) a.get(i)))
  119.                 return false;
  120.         }
  121.         return true;
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement