// returns number of deleted elements
static int deleteWhere(Collection c, O... data) {
  int n = 0;
  Iterator i = c.iterator();
  while (i.hasNext())
    if (checkFields(i.next(), data)) {
      i.remove();
      ++n;
    }
  ret n;
}