Autor Tema: Interface Iterable Java implementar iterator(), spliterator() y forEach CU00677B  (Leído 2690 veces)

paramonso

  • Intermedio
  • ***
  • Mensajes: 241
  • El ignorante afirma, el sabio duda y reflexiona.
    • Ver Perfil
Hola. Dejo el Ejercicio CU00677B del curso básico de programación Java.
Concepto o definición de interface Java ¿Qué es una interface? Tipos de interfaz.

EJERCICIO

Busca información en la documentación oficial de Java sobre la interface Iterable.
 ¿Qué clases de las que conoces implementan esta interface? 

ArrayList, Subinterfaces( Collection, List, Queue )

 ¿Qué método han de tener disponible las clases que implementan esta interface? 

iterator(), forEach(), spliterator().

¿Para qué sirve este método?

Devuelve un iterador sobre elementos de tipo especificado y los métodos disponibles para los objetos de tipo Iterator nos van a permitir operar con cada elemento de la colección.

En la documentacion de java da esta definicion:
Realiza la acción dada para cada elemento de la Iterable hasta que todos los elementos hayan sido procesados ​​o la acción arroje una excepción.
A menos que la clase implementadora especifique lo contrario, las acciones se realizan en el orden de iteración (si se especifica un orden de iteración).


Gracias.
« Última modificación: 03 de Agosto 2019, 23:26 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas, para quien revise este ejercicio y quiera ver una respuesta correcta y simple puede consultar https://aprenderaprogramar.com/foros/index.php?topic=2213.0

Algunos comentarios sobre lo indicado en este hilo. Aquí se produce una curiosidad: la interface Iterable define 3 métodos que son iterator(), spliterator() y forEach() por lo cual parece lógico pensar en que para implementar la interface, haya que definir estos tres métodos. Sin embargo, si queremos implementar la interface únicamente hay que definir el método iterator(), porque los otros dos disponen de una implementación por defecto, detalle que ocurre con algunas interfaces Java. No es recomendable detenerse en esta entrega del curso en estas cuestiones, porque Java tiene muchos detalles y en el curso no se pretende entrar en los detalles, sino en los conceptos más importantes. De cualquier forma, para quien quiera leer un poco sobre el tema, copio algo de información (en inglés):

Citar
You don't have to implement spliterator() and forEach() methods. Those methods were introduced in Java 8 and they have a default implementation.

As to what they do :

spliterator() creates a Spliterator over the elements described by this Iterable. A Spliterator is used for traversing and partitioning elements of a source (which can be, for example, a Collection). It is used in Java 8 to create parallel Streams of objects, which would allow you to perform operations on the items of your Iterable in parallel.

forEach(Consumer action) performs an action (by calling the accept method of the Consumer which is passed to it) on all the elements of the Iterable.

Its default implementation behaves like :

 for (T t : this)
     action.accept(t);

You just have to implement the iterator() method, which returns an Iterator.

Of course you can read all of this in the JavaDoc of Iterable.

Salu2

diego_godie

  • Sin experiencia
  • *
  • Mensajes: 9
  • Deseo Vivir de esto
    • Ver Perfil
Para saber que método han de tener disponible las clases que implementan esta interface, hay que mirar en la documentación, mas precisamente en la solapa "Abstract Methods". Vi por ahí que para que una clase implemente una interfaz esta debe implementar todos los métodos abstractos de la misma.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".