Autor Tema: class java.lang.String cannot be cast to class java.util.Set ejercicio CU00678B  (Leído 3577 veces)

@mayakoski

  • Sin experiencia
  • *
  • Mensajes: 43
    • Ver Perfil
Dejo mi respuesta al ejercicio CU00678B del , aunque no me satisface del todo ya que he querido hacer y revisar otras posibilidades pero no he logrado hacerlas:

1. Como puedo iteractuar entre los diferentes elementos, accesar o mostrar un elemento especifico y no todos de corrido.

2. He intentado comparar un elemento de mis listas por ejemplo con un String y no me deja, me salta error.

3. He intentado pasar el valor que me devuelve un next a un String y me da
  class java.lang.String cannot be cast to class java.util.Set  (esto para los caso 2 y 3).

4. He buscado la manera de cambiar el orden en el cual me liste los elementos y no he encontrado

de tomas maneras dejo mi solución

Gracias

Código: [Seleccionar]
package com.aprenderaprogramar;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
import java.util.Set;

public class TestInterfases {
public static void main(String[] args) {
ArrayList<Set> miArray = new ArrayList<Set>();
HashSet<String> misStrings = new HashSet<String>();
TreeSet<Integer> misInt = new TreeSet<Integer>();

misStrings.add("sol");
misStrings.add("luna");
misStrings.add("saturno");

misInt.add(2);
misInt.add(8);
misInt.add(5);

miArray.add(misStrings);
miArray.add(misInt);

for (Set listaInterna : miArray) {
Iterator<Set> elemento = listaInterna.iterator();
while (elemento.hasNext()) {
System.out.print("\"" + elemento.next());
if(elemento.hasNext()) {
System.out.print("\",");
}else {
System.out.print("\";");
}
}
}
}
}
« Última modificación: 19 de Octubre 2020, 18:13 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, este ejercicio tiene cierta complicación debido a que es necesario hacer casting entre tipos de datos para evitar warnings del compilador.

El mensaje class java.lang.String cannot be cast to class java.util.Set haría referencia a que no se puede asignar a un String el contenido de un Set porque un String es una cadena de caracteres y un Set un conjunto de objetos, por tanto no existe correspondencia directa entre uno y otro tipo.

La solución planteada no está mal del todo pero tampoco está correcta, ya que el ejercicio pedía "usar iteradores" y en la solución propuesta, además de iteradores se usa un for extendido.

Puede verse una solución correcta para el ejercicio en https://aprenderaprogramar.com/foros/index.php?topic=2384.0

Saludos

 

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".