import java.io.*; import java.util.*; public class myList { private int[] data; private int numItems; Random r = new Random(); public myList(int length) { data = new int[length]; numItems = 0; } public String toString() { String s = Arrays.toString(data) + " : " + numItems; return s; } public boolean isFull() { return numItems >= data.length; } public void grow() { int[] tmpArray = new int[data.length + data.length/2]; for (int i=0;i<data.length;i++) tmpArray[i] = data[i]; data = tmpArray; } public void add(int d) { if (isFull()) grow(); data[numItems] = d; numItems = numItems + 1; System.out.println("Added " + d + "!"); } public void add(int pos, int d) { while (data.length<pos) grow(); if (isFull()) grow(); for (int i=pos;i<data.length-1;i++) { if (i==pos) data[i] = d; else data[i] = data[i+1]; } numItems = numItems + 1; System.out.println("Inserted " + d + " into position " + pos + "!"); } public void remove(int pos) { int out = data[pos]; for (int i=pos+1;i<numItems;i++) { data[i-1] = data[i]; } numItems = numItems - 1; System.out.println("Removed " + out + " from position " + pos + "!"); } public String size() { return "Size of array: " + numItems; } public String get(int pos) { return "Number in position " + pos + " : " + data[pos]; } public void set(int pos, int d) { while (data.length<pos) grow(); data[pos] = d; System.out.println("Set " + d + " in position " + pos + "!"); } public int find(int n) { for (int i=0; i<numItems; i++){ if (data[i]==n) return n; } return 0; } public int fremove(int n) { for (int i=0; i<numItems; i++){ if (data[i]==n){ remove(i); return n; } } return -1; } }