+ public void remove(T t) {
+ if (only != null) {
+ if (only==t) only=null;
+ return;
+ }
+ boolean found = false;
+ int j;
+ for(j=0; j<size; j++)
+ if (array[j]==t) {
+ found = true;
+ break;
+ }
+ if (!found) return;
+ array[j] = array[size-1];
+ array[size-1] = null;
+ size--;
+ }
+
+ public <B,C> void visit(Invokable<T,B,C> ivbc, B b, C c) {
+ if (only!=null) ivbc.invoke(only, b, c);
+ else for(int j=0; j<size; j++)
+ ivbc.invoke((T)array[j], b, c);
+ }
+