package insiemehash;

import java.util.*;

class IteratorInsiemeHash implements Iterator { 

  private InsiemeHash insh;
  private int pos;
  private Nodo rif;
  
  public IteratorInsiemeHash(InsiemeHash ia) {
    insh = ia;
    pos = 0;
    while (pos < insh.dimtavola && insh.tavola[pos] == null) pos++;
    if (pos < insh.dimtavola) rif = insh.tavola[pos];
    else rif = null;
  }
  
  // Realizzazione funzioni di Itarator
  public boolean hasNext() {
    return pos != insh.dimtavola;
  }
    
  public Object next() {
    Object e = rif.key;
    if (rif.next != null)
      rif = rif.next;
    else { //rif == null
      while (pos < insh.dimtavola && insh.tavola[pos] == null) pos++;
      if (pos < insh.dimtavola) rif = insh.tavola[pos];
      else rif = null;
    }
    return e;
  }

  public void remove() {
    throw new UnsupportedOperationException("remove() non e' supportata");
  }
}
