public bool removeAll(java.util.Collection <Object> o) { if (root.fast) { lock (root) { java.util.ArrayList <Object> temp = (java.util.ArrayList <Object>)root.list.clone(); java.util.List <Object> sub = get(temp); bool r = sub.removeAll(o); if (r) { last = first + sub.size(); } root.list = temp; expected = temp; return(r); } } else { lock (root.list) { return(get(expected).removeAll(o)); } } }