1 30 31 34 public class ArraySet { 35 36 private int[] values = new int[3]; 37 38 private int size; 39 40 public boolean contains(final int v) { 41 for (int i = 0; i < size; ++i) { 42 if (values[i] == v) { 43 return true; 44 } 45 } 46 return false; 47 } 48 49 public void add(final int v) { 50 if (!contains(v)) { 51 if (size == values.length) { 52 System.err.println("[enlarge]"); 53 int[] newValues = new int[values.length + 3]; 54 System.arraycopy(values, 0, newValues, 0, size); 55 values = newValues; 56 } 57 values[size++] = v; 58 } 59 } 60 61 public void remove(final int v) { 62 int i = 0; 63 int j = 0; 64 while (i < size) { 65 int u = values[i]; 66 if (u != v) { 67 values[j++] = u; 68 } 69 ++i; 70 } 71 size = j; 72 } 73 74 76 public static void main(final String [] args) { 77 ArraySet s = new ArraySet(); 78 System.err.println("add 1"); 79 s.add(1); 80 System.err.println("add 1"); 81 s.add(1); 82 System.err.println("add 2"); 83 s.add(2); 84 System.err.println("add 4"); 85 s.add(4); 86 System.err.println("add 8"); 87 s.add(8); 88 System.err.println("contains 3 = " + s.contains(3)); 89 System.err.println("contains 1 = " + s.contains(1)); 90 System.err.println("remove 1"); 91 s.remove(1); 92 System.err.println("contains 1 = " + s.contains(1)); 93 } 94 } 95 | Popular Tags |