PDA

Ver la versión completa : Iterador en Lista MultiClave (JAva)



FCBalles
31-08-2006, 04:24
Hola, la verdad es que soy un tanto zoquete y no sé si esta duda se podrá responder por aquí, o este no es el sitio indicado.

Tengo que crear una lista Multiclave y aparte de tener muchos problemas en hacerla, mi principal problema y por el que pregunto es a la hora de crear el iterador.

Tengo creada esta clase para el iterador (que imagino que estará bien):

class Itr<E> implements Iterator<E>{

java.util.Stack<E> elementos;

public Itr(){
elementos = new java.util.Stack<E>();
}

public boolean hasNext(){
return !elementos.empty();
}

public E next(){
if (!elementos.empty()){
return elementos.pop();
}else{
return null;
}
}

public void remove(){
throw new UnsupportedOperationException();
}
}


Y ahora tengo que desarrollar el siguiente método:

/**
* Devuelve un iterador sobre la lista
* @param pos posicion de la clave sobre la cual se va a devolver un iterador
*/
public java.util.Iterator iterator(int pos);



Y he intentado hacerlo pero me he perdido. Tengo que emplear la clase que he creado? Imagino que si, pero como?
He puesto aquí el iterador de la Lista MultiClave, pero he estado probando y ni siquiera me sale bien el de la lista normal :S

Igual es una chorrada, o igual tengo todo mal, pero...alguien me da una ayuda, o me dice como puedo hacerlo (o donde puedo mirarlo)



GRACIAS.

smaug_
31-08-2006, 09:55
No termino de comprender muy bien que es lo que tienes que hacer :S
A ver si lo puedes explicar un poco mas para tontos y me entero :P
Si lo que necesitas es un par de clave-valores puedes usar la clase HashMap.

FCBalles
31-08-2006, 13:40
Pues lo que tengo que hacer es crear un metodo que recorra los elementos de la lista.

No encuentro la forma de crear un iterador para que al llamar a su método next(), me devuelva el siguiente método de la lista que lo llama.

Por ejemplo, a la hora de insertar un elemento en la lista MultiClave, tengo una lista simple con todas las cabezas de todas las claves.
Pues necesito un iterador que recorra esa lista simple de cabezas, y otro para que recorra la lsita de nodos MultiClave a partir de cada cabeza.

Así mejor?

smaug_
31-08-2006, 13:56
mm.. por lo que se, los metodos de la clase interface Collection (http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html)
Mira el metodo iterator, es lo que tu necesitas, devuelve un iterador sobre esa coleccion.
Si necesitas una implementacion de Collection puedes usar ArrayList (http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html)
No se si sera eso lo que necesitas.