Hola:
Son conceptos distintos. StringTokenizer parte un String en trozos y luego te permite recorrerlo con algo parecido a un Iterator (un Enumeration, más antigua que Iterator). La interfaz Iterator es general y sirve para recorrer colecciones, pero no parte ninguna cadena en trozos.
StringTokenizer está obsoleto, no solo por su interfaz Enumeration, sino porque se aconseja usar en su lugar el método split() de la clase String. Esto devuelve un array de String. En cualquier caso, Iterator tiene método remove() y Enumeration no, por lo que Enumeration sigue usandose como iterador de colecciones que NO se quieren modificar mientras se recorren.
Si quieres hacer una clase intermediaria que conecte ClientIterator y StringTokenizer tienes que hacer una clase similar a esto (este tipo de clase se llama Adaptador o patrón Adaptador)
Código Java:
Ver originalpublic class Adaptador
implements Iterator { this.tokenizer = tokenizer;
}
// Implementa aquí todos los métodos de Iterator (hasNext(), next() y remove())
// llamando a los métodos equivalentes de tokenizer.
}
pero posiblemente sea mejor que tu ClienteIterator sea un ClienteEnumeration y admite un Enumeration, puesto que no vas a modificar la colección y así puedes pasarle directamente el StringTokenizer.
Se bueno.