code: public final Iterator<String> keyIterator() {
          return new Iterator<String>() {
              private final Iterator<Property> it = props.iterator();
  
              @Override
              public boolean hasNext() {
                  return it.hasNext();
              }
  
              @Override
              public String next() {
                  final Property prop = it.next();
                  return prop.getKey();
              }
  
              @Override
              public void remove() {
                  it.remove();
              }
          };
      }
docs: Returns a key iterator.
  
  @return Iterates over all keys including the deleted ones.