Pregunta

Tengo una lista de enlaces personalizada, genérica y individual que construí yo mismo. Puedo agregar, eliminar, etc. a la lista muy bien. Me gustaría implementar el Java Listiterator en mi clase. ¿Cómo haría para comenzar esto? ¿Qué métodos necesito agregar a mi clase? Todo lo que puedo encontrar en la web son ejemplos de usar el Listiterator en la LinkedList predeterminada de Java, que no es bueno para mí. ¡Gracias!

¿Fue útil?

Solución

Usted crea una segunda clase (generalmente una clase anidada de su lista vinculada) que implementa todas las funciones de la interfaz ListIterator. Tenga en cuenta que algunas funciones (como add y remove) son opcionales: solo puedes lanzar una Operación no apoyada. Su clase de lista vinculada necesita implementar los métodos listIterator() y listIterator(int) Para devolver una instancia de su segunda clase.

Otros consejos

Debe implementar el Iterador o el Listiterator interfaz.

Busque los métodos que tiene Listiterator. Deberá asegurarse de que su versión tenga esos mismos métodos.

Si puede, busque un Interface Ese listiterator usa e implementa esa interfaz.

Para el rendimiento, puede implementar ListIterator Y mantenga una versión "al revés" de su lista mientras itera a través de ella. Esto emularía una lista doblemente vinculada, pero solo para el iterador.

Sin embargo, probablemente sea más seguro implementar su lista vinculada como una lista doblemente vinculada debajo.

Si es una lista vinculada individualmente, implementando ListIterator Será complicado (si no imposible), ya que necesita navegar en ambas direcciones, que solo puede implementar reiniciando desde la cabeza una y otra vez.

Haga su lista de doble enlace, o tendrá que lanzar UnsupportedOperationException en muchos métodos. (O vivir con el rendimiento o (n) en la mitad de los métodos)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top