Como uso el ListIterator

eserubens
09 de Enero del 2005
buenas tengo un pequeño problema, tengo una lista de elementos de una determinada clase es decir
LinkedList canales = new LinkedList();
a la cual le añado elementos de la clase class Canal

Luego cuando kiero recorrer la lista me creo un iterador, y
quiero acceder a un elemento de la clase Canal al cual apunta el iterador en concreto el nombre, hago esto pero me da error:

while((iter.hasNext())|| enc == false)
{
if (((iter.getNombre()).compareTo(nombre)) == 0)
{
enc = true;
}
iter = iter.next();
}

Alguin me puede ayudar, Gracias

Lemony Snickets
09 de Enero del 2005
Hola,...

Miguel tiene razón,... De todas formas, incluso realizando el casting, me temo que el código que has planteado no funcionará...

LinkedList canales = new LinkedList();
Iterator iter = canales.iterator();

// Mejor usar esta forma. La ejecución es más rápida
while(iter.hasNext()){
// Antes de comparar hay que acceder al objeto...
// Aún empezado a recorrer la lista con el iterador
Canal c = (Canal)iter.next();
// Ahora tenemos el primer objeto y en cada iteración
// obtendremos el siguiente objeto de la lista
// Suponiendo que c.getNombre() devuelve un String
if(c.getNombre().equals(nombre)){
enc = true; // Por si la usas en otro sitio
break;
}
}
}

Espero que te sirva...

Miguel
09 de Enero del 2005
Las listas enlazadas contienen objetos de la clase Object. Puesto que toda clase por hereda de la clase Object. cuando deseas extraer un elemento de la lista enlazada debes hacer un downcasting a la subclase dada en tu caso Canales