Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: @mayakoski en 14 de Septiembre 2019, 22:25
-
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
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("\";");
}
}
}
}
}
-
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