Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/11/2014, 02:07
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Clase StringTokenizer e interfaz Iterator (Clase intermediaria) JAVA

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 original
  1. public class Adaptador implements Iterator {
  2.    private StringTokenizer tokenizer=null;
  3.    public Adaptador(StringTokenizer tokenizer) {
  4.         this.tokenizer = tokenizer;
  5.    }
  6.    // Implementa aquí todos los métodos de Iterator (hasNext(), next() y remove())
  7.    // llamando a los métodos equivalentes de tokenizer.
  8. }

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.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 19/11/2014 a las 02:12