Java creando un iterador para una estructura de datos personalizada

Entonces esto es lo que tengo:

  • 1 interfaz llamada Set
  • 1 clase abstracta que implementa set
  • 2 clases que extienden la clase abstracta, llamada ArraySetyListSet

Entonces, en Set, declaro Iterator <String> iterator();y luego en mis 2 clases no abstractas, tengo clases anidadas que se llaman ArrayIteratory ListIteratorque implementan la funcionalidad del iterador. Pero el compilador se queja de eso ArraySety ListSetdebe implementarlo Set.iterator(). ¿Cómo lo hago para que el compilador lo reconozca ArrayIteratory ListIteratorson las implementaciones de Set.iterator()?

Entonces parece

interface Set extends Iterable< String > {  
...  
Iterator< String > iterator(); }  




class ArraySet extends AbstractClass {  
 ...  
    class ArrayIterator implements Iterator< String > { ... }  
 ...  
}  
Respuesta 1

Debe implementar Set.iterator()en sus clases no abstractas ArraySety ListSet, es decir:

En ArraySet:

Iterator<String> iterator() {
    // do something, probably return ArrayIterator ?
}

En ListSet:

Iterator<String> iterator() {
    // do something, probably return ListIterator ?
}

Además, supongo que tanto ArrayIteratore ListIteratorimplementaIterator

Respuesta: 2

Estoy buscando un método para entregar mi software de cliente grueso a los usuarios de la intranet a través de un navegador. Idealmente, el usuario podría hacer clic en un solo botón en la página, y algo local a la máquina ...

Oigan todos. Pregunta rápida aquí. Estoy tratando de mantener la cámara centrada en el jugador, pero en el siguiente código, la cámara, por así decirlo, todavía se mueve. ¿Alguna idea sobre cómo hacer que se quede en un solo lugar? para (int ...

A pesar de mis tendencias luditas, ahora tengo un teléfono con soporte para Java, pero sin soporte para Flash. También tengo una copia de Macromedia Flash MX2004, aunque es poco probable que la actualice pronto. Lo que me gustaría ...

Tengo: String example = {"test": "true"} pero quiero tener: example = {"test": true} ¿Cómo puedo convertir la primera cadena en la segunda?