Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jotase1507 en 17 de Febrero 2015, 18:50
-
Buenas tardes, envio mi codigo para su revision :)
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Prueba {
public static void main (String [] args) {
HashSet<String> listaDeString = new HashSet<String>();
listaDeString.add("sol");
listaDeString.add("luna");
listaDeString.add("saturno");
TreeSet<Integer> listaDeIntegers = new TreeSet<Integer>();
listaDeIntegers.add(2);
listaDeIntegers.add(8);
listaDeIntegers.add(5);
ArrayList<Set> listaDeSet = new ArrayList<Set>();
listaDeSet.add(listaDeString);
listaDeSet.add(listaDeIntegers);
for (Iterator<Set> it = listaDeSet.iterator(); it.hasNext();) {
Set tmpSet = it.next();
System.out.print(tmpSet);
}
}
}
-
Hola jotase
Tu clase hace el trabajo en parte.
Muestras los dos elementos del ArrayList, pero en el enunciado se pide:
e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2.
Has de mostrar individualmente los componentes de cada uno de los elementos del ArrayList.
Piensa que has de hacer operaciones con los números y tienes que extraerlos de la lista.
Cuando tengas cada uno de los elementos del ArrayList tienes que usar otro iterador para recorrer sus elementos y mostrarlos
Saludos
-
Hice algunos cambios en mi codigo, de no ser correcto, agradecere la respectiva correccion.
Saludos.
//Ejercicio 78
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Prueba {
public static void main (String [] args) {
HashSet<String> listaDeString = new HashSet<String>();
listaDeString.add("sol");
listaDeString.add("luna");
listaDeString.add("saturno");
TreeSet<Integer> listaDeIntegers = new TreeSet<Integer>();
listaDeIntegers.add(2);
listaDeIntegers.add(5);
listaDeIntegers.add(8);
ArrayList<Set> listaDeSet = new ArrayList<Set>();
listaDeSet.add(listaDeString);
listaDeSet.add(listaDeIntegers);
for (Iterator<String> it = listaDeString.iterator(); it.hasNext();) {
String tmpString = it.next();
System.out.print("\""+tmpString+"\", ");
}
for (Iterator<Integer> it = listaDeIntegers.iterator(); it.hasNext();) {
Integer tmpInteger = it.next();
System.out.print(tmpInteger+", ");
}
System.out.println("\b\b.");
}
}
-
Hola jotase
Si, has hecho lo que te pedía, mostrar todos los elementos uno a uno. Si, pero no era así como lo pedía.
Para mostrar los elementos usas los objetos (listaDeString y listaDeIntegers) dejando de lado el objeto (listaDeSet) que es de donde hay que sacarlos.
A continuación tienes tu clase con pequeños cambios y comentarios para que estudies que hace cada cosa.
//Ejercicio 78
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Prueba {
public static void main (String [] args) {
HashSet<String> listaDeString = new HashSet<String>();
listaDeString.add("sol");
listaDeString.add("luna");
listaDeString.add("saturno");
TreeSet<Integer> listaDeIntegers = new TreeSet<Integer>();
listaDeIntegers.add(2);
listaDeIntegers.add(5);
listaDeIntegers.add(8);
ArrayList<Set> listaDeSet = new ArrayList<Set>();
listaDeSet.add(listaDeString);
listaDeSet.add(listaDeIntegers);
// recorrer el ArrayList
Iterator<Set> itSet = listaDeSet.iterator();
while (itSet.hasNext()) {
// esto referencia cada elemento del ArrayList
Set objetoArrayList = itSet.next();
// recorrer el elemento extraido del ArrayList
int cuenta = 0;
Iterator itElemento = objetoArrayList.iterator();
while (itElemento.hasNext()) {
System.out.print ( ++cuenta + ".- " + itElemento.next() + "\t");
}
// salto de linea despues de cada elemento del ArrayList
System.out.println();
}
/**
for (Iterator<String> it = listaDeString.iterator(); it.hasNext();) {
String tmpString = it.next();
System.out.print("\""+tmpString+"\", ");
}
for (Iterator<Integer> it = listaDeIntegers.iterator(); it.hasNext();) {
Integer tmpInteger = it.next();
System.out.print(tmpInteger+", ");
}
*/
System.out.println("\b\b.");
}
}
Saludos
-
Si no me equivoco lo que estas haciendo es ingresar en los niveles de almacenamiento uno tras otro, referenciandolos con el Iterator, me costo un poco entender la mecanica de lo que estabas haciendo, pero una vez abri los ojos, se hizo mas sencillo.
Gracias por la ayuda.