Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Duda en ejercicio con iteradores

Estas en el tema de Duda en ejercicio con iteradores en el foro de Java en Foros del Web. Buenas. Tengo que hacer un método donde me dan una lista de listas y tengo que recorrerlo con iteradores la de lista de listas y ...
  #1 (permalink)  
Antiguo 14/11/2015, 03:56
Avatar de Juanjo147  
Fecha de Ingreso: octubre-2015
Ubicación: Madrid
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Duda en ejercicio con iteradores

Buenas.

Tengo que hacer un método donde me dan una lista de listas y tengo que recorrerlo con iteradores la de lista de listas y la sublista que apunta el iterador. El metodo tiene devolver una lista nueva con los números, strings (lo que sea), que no esten repetidos en la lista resultado.

public class Flatten<E> {
public PositionList<E> flatNub(PositionList<PositionList<E>> listOfLists) {
PositionList <E> resultado = new NodePositionList <E> ();
Iterator<PositionList<E>> itFuera = listOfLists.iterator();
while(itFuera.hasNext()){
Iterator <E> itDentro = itFuera.next().iterator();
while(itDentro.hasNext()){
if(member(itDentro.next(), resultado)){
}
}
}
return resultado;
}

public boolean member(E elem, PositionList<E> list) {
Iterator<E> iterador = list.iterator();
boolean encontrado = false;
while (iterador.hasNext()){
if(elem.equals(iterador.next())){
encontrado = true;
}
}
return encontrado;
}

}
Se asume que en las listas no hay elementos null.
Member me devuelve true si el elemento que busco en la lista esta, si no esta me retorna false. !(el método member no puede añadir directamente a la lista resultado)!
Mi duda esta en, al llamar a member el iterador de la sublista se me incrementa al siguiente elemento y si por el caso ese elemento no esta en la lista, no le puedo volver a apuntar porque ya he aumentado el iterador.
Os pongo la explicación de cada método:
flatNub recibe una lista de listas (listOfLists), y devuelve una lista nueva con los elementos, no repetidos, y en orden, que aparecen en las sublistas de listOfLists.
member devuelve true si list contiene un elemento que es igual que elem, y false si no. (el método member no puede añadir directamente a la lista resultado)
Un ejemplo de lo que debe hacer:
flatNub([[1,2],[],[2,3,4],[8,4,]]) = [1,2,3,4,8]
¿Alguna solución?
Gracias.
  #2 (permalink)  
Antiguo 14/11/2015, 10:24
Avatar de Juanjo147  
Fecha de Ingreso: octubre-2015
Ubicación: Madrid
Mensajes: 4
Antigüedad: 9 años
Puntos: 0
Respuesta: Duda en ejercicio con iteradores

Ya lo he solucionado, Gracias.

Etiquetas: ejercicio, metodo, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:49.