Todos los logos y marcas utilizados en este documento, estn registrados y pertenecen a sus respectivos dueos. AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 1
Curso: "Programacin Java SE" 2013
Objetivo El objetivo de esta prctica de laboratorio es exponer los conceptos que hay detrs de los componentes avanzados del JDK de Java tales como las agrupaciones de objetos (Java Collection Framework) y veremos el uso de Inner Class que son clases anidadas dentro de otras. AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 2
Curso: "Programacin Java SE" 2013
Colecciones Api de Java
Ejercicio 1: Creando una aplicacin que usa HashSet (Set) 1. Abrir Netbeans IDE 2. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Observar que aparece la ventana de dialogo New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo la seccin Projects. Clic Next.
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 3
Curso: "Programacin Java SE" 2013
Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploHashSetAgregar. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploHashSetAgregar. (Figura de abajo) Esto es para generar la clase autnoma ElemploHashSetAgregar.java, que contendr el mtodo main(..) que ser generado por Netbeans. Clic Finish. AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 4
Curso: "Programacin Java SE" 2013
Observe que el proyecto ProyectoElemploHashSetAgregar y ha sido creado bajo la pestaa Projects de NetBeans IDE y adems ha generado automticamente la clase ElemploHashSetAgregar.java la cual es desplegada en el editor de cdigo del IDE.
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 5
Curso: "Programacin Java SE" 2013
3. Modificar el contenido generado por el IDE en la clase ElemploHashSetAgregar.java. Modifique la clase ElemploHashSetAgregar.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.HashSet;
/** * @author Andrs Guzmn */ public class ElemploHashSetAgregar{ public static void main(String[] args) { // Creamos el objeto HashSet HashSet<String> hs = new HashSet<String>(); System.out.println(hs.add("uno")); System.out.println(hs.add("dos")); System.out.println(hs.add("tres")); System.out.println(hs.add("cuatro")); System.out.println(hs.add("cinco"));
// Imprimimos el objeto de coleccin HashSet System.out.println(hs);
// Agregamos un elemento duplicado en el HashSet Boolean b = hs.add("uno"); System.out.println("Permite elementos duplicados = " + b); System.out.println(hs); } }
4. Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploHashSetAgregar y seleccionar Run Observe el resultado en la salida de consola (Tab Output):
Ejercicio 2: Construir y ejecutar un programa para detectar duplicados en un Set 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploHashSetBuscarDup. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploHashSetBuscarDup. Esto es para generar la clase autnoma ElemploHashSetBuscarDup.java, que contendr el mtodo main (...). Clic Finish.
2. Modificar el contenido generado por el IDE en la clase ElemploHashSetBuscarDup. Modifique la clase ElemploHashSetBuscarDup.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.HashSet; import java.util.Set;
/** * * @author Andrs Guzmn F */ public class ElemploHashSetBuscarDup {
public static void main(String[] args) { // creamos un arreglo de datos String nombres[] = { new String("John"), new String("James"), new String("Bart Simpson"), new String("John ") };
// Creamos un objeto HashSet y // asignamos los datos al Set. Set<String> s = new HashSet<String>();
for (int i = 0; i < nombres.length; i++) { if (!s.add(nombres[i])) { System.out.println("Elemento Duplicado: " + nombres[i]); } }
System.out.println(s.size() + " datos no duplicados (distintos): " + s); } }
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 7
Curso: "Programacin Java SE" 2013
3. Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploHashSetBuscarDup y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: Elemento Duplicado: John 3 datos no duplicados (distintos): [James, Bart Simpson, John] BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 8
Curso: "Programacin Java SE" 2013
Ejercicio 3: Construir y ejecutar un programa para detectar duplicados en un Set otra Forma 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploHashSetBuscarDup2. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploHashSetBuscarDup2. Esto es para generar la clase autnoma ElemploHashSetBuscarDup2.java, que contendr el mtodo main (...). Clic Finish.
2. Modificar el contenido generado por el IDE en la clase ElemploHashSetBuscarDup2. Modifique la clase ElemploHashSetBuscarDup2.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.HashSet; import java.util.Set;
/** * * @author Andrs Guzmn F */ public class ElemploHashSetBuscarDup2 {
public static void main(String[] args) { // creamos un arreglo de datos String nombres[] = { new String("John"), new String("James"), new String("Bart Simpson"), new String("John") };
Set<String> unicos = new HashSet<String>(); Set<String> duplicados = new HashSet<String>();
for (int i = 0; i < nombres.length; i++) { if (!unicos.add(nombres[i])) { duplicados.add(nombres[i]); } }
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 9
Curso: "Programacin Java SE" 2013
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploHashSetBuscarDup2 y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: Unicos: [James, Bart Simpson] Duplicados: [John] BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 10
Curso: "Programacin Java SE" 2013
Ejercicio 4: Construir y ejecutar un programa que usa TreeSet Una implementacin de la interfaz Set pero que asegura el orden ascendente de sus elementos, ordena en forma natural alfabtica de sus elementos. 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploTreeSet. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploTreeSet. Esto es para generar la clase autnoma ElemploTreeSet.java, que contendr el mtodo main (...). Clic Finish.
2. Modificar el contenido generado por el IDE en la clase ElemploTreeSet. Modifique la clase ElemploTreeSet.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.Set; import java.util.TreeSet; /** * * @author Andrs Guzmn F */ public class ElemploTreeSet { public static void main(String[] args) { Set<String> ts = new TreeSet<String>();
System.out.println("Elementos del TreeSet = " + ts2); } }
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 11
Curso: "Programacin Java SE" 2013
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploTreeSet y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: Elementos del TreeSet = [cinco, cuatro, dos, tres, uno] Elementos del TreeSet = [1, 2, 3, 4, 5] BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 12
Curso: "Programacin Java SE" 2013
Ejercicio 5: Construir y ejecutar un programa con las distintas formas de loop en ArrayList (implementa la interface List), las tres formas de iteraciones del ejemplo (foreach, for y while) son validas para cualquier List y Set, en cualquiera de sus implementaciones (ArrayList, LinkedList, Vector, Set, HashSet, TreeSet, etc.) 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploLoopList. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploLoopList. Esto es para generar la clase autnoma ElemploLoopList.java, que contendr el mtodo main (...). Clic Finish.
2. Modificar el contenido generado por el IDE en la clase ElemploLoopList. Modifique la clase ElemploLoopList.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.ArrayList; import java.util.Iterator; import java.util.List;
/** * @author Andrs Guzmn */ public class ElemploLoopList { public static void main(String[] args) { // Creamos el objeto list para los nombre List<String> nombres = new ArrayList<String>(); nombres.add("Andres"); nombres.add("James"); nombres.add("Rod"); nombres.add("Juan"); nombres.add("Pedro"); nombres.add("Diego"); nombres.add("John"); nombres.add("Bruce");
/** * Las tres formas de iteraciones del ejemplo (foreach, for y while) * son validas para cualquier List y Set, en cualquiera de sus * implementaciones (ArrayList, LinkedList, Vector, Set, HashSet, TreeSet, etc.) */
//========== Iterando mediante Foreach ========== System.out.println("========== Iterando mediante Foreach ========== "); for(String nombre: nombres){ System.out.println(nombre); } AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 13
Curso: "Programacin Java SE" 2013
//========== Iterando mediante For ========== System.out.println("========== Iterando mediante For ========== "); for(int i=0; i< nombres.size(); i++){ System.out.println(nombres.get(i)); }
//========== Iterando mediante While con Iterator ========== System.out.println("========== Iterando mediante While con Iterator ========== "); Iterator<String> it = nombres.iterator(); while(it.hasNext()){ String nombre = it.next(); System.out.println(nombre); } } }
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploLoopList y seleccionar Run Observe el resultado en la salida de consola (Tab Output): ========== Iterando mediante Foreach ========== Andres James Rod Juan Pedro Diego John Bruce ========== Iterando mediante For ========== Andres James Rod Juan Pedro Diego John Bruce ========== Iterando mediante While con Iterator ========== Andres James Rod Juan Pedro Diego John Bruce AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 14
Curso: "Programacin Java SE" 2013
Ejercicio 6: Construir y ejecutar un programa que usa ArrayList (implementa la interface List) 3. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploArrayList. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploArrayList. Esto es para generar la clase autnoma ElemploArrayList.java, que contendr el mtodo main (...). Clic Finish.
4. Modificar el contenido generado por el IDE en la clase ElemploArrayList. Modifique la clase ElemploArrayList.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.ArrayList; import java.util.Iterator; /** * * @author Andrs Guzmn F */ public class ElemploArrayList {
public static void main(String[] args) { // Creamos el objeto ArrayList ArrayList<String> al = new ArrayList<String>(); System.out.println(al+", size = "+al.size());
// Agregamos elementos al ArrayList al.add("R"); al.add("U"); al.add("O"); al.add(new String("x")); al.add(2, "10"); System.out.println(al+", size = " + al.size());
// Verificamos que la coleccin ya contenga un determinado elemento Boolean b = al.contains("x"); System.out.println("La lista contiene x = " + b); b = al.contains("p"); System.out.println("La lista contiene p = " + b); b = al.contains("10"); System.out.println("La lista contiene 10 = " + b);
// Obtenemos el objeto Iterator e iteramos sobre el Iterator<String> it = al.iterator(); while (it.hasNext()){ AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 15
Curso: "Programacin Java SE" 2013
System.out.println("Desde el Iterator = " + it.next()); }
// Creamos el arreglo de String desde ArrayList Object a[] = al.toArray(); for (int i=0; i<a.length; i++){ System.out.println("Desde el arreglo = " + a[i]); } } }
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploArrayList y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: [], size = 0 [R, U, 10, O, x], size = 5 [R, 10, O, x], size = 4 La lista contiene x = true La lista contiene p = false La lista contiene 10 = true Desde el Iterator = R Desde el Iterator = 10 Desde el Iterator = O Desde el Iterator = x Desde el arreglo = R Desde el arreglo = 10 Desde el arreglo = O Desde el arreglo = x BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 16
Curso: "Programacin Java SE" 2013
Ejercicio 7: Construir y ejecutar un programa para buscar nombres que usa ArrayList 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploArrayListBuscar. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploArrayListBuscar. Esto es para generar la clase autnoma ElemploArrayListBuscar.java, que contendr el mtodo main (...). Clic Finish.
2. Modificar el contenido generado por el IDE en la clase ElemploArrayListBuscar. Modifique la clase ElemploArrayListBuscar.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.List; import javax.swing.JOptionPane;
/** * @author Andrs Guzmn F */ public class ElemploArrayListBuscar {
public static void main(String[] args) {
String param = JOptionPane.showInputDialog("Ingrese un nombre a buscar");
if(encontrado){ JOptionPane.showMessageDialog(null, "Nombre " + param + " encontrado en el sistema"); } else { JOptionPane.showMessageDialog(null, "Nombre " + param + " NO existe en el sistema"); } } } AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 17
Curso: "Programacin Java SE" 2013
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploArrayListBuscar y seleccionar Run Observe el resultado en la salida de consola (Tab Output):
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 18
Curso: "Programacin Java SE" 2013
Ejercicio 8: Construir y ejecutar un programa para ordenamiento de Objetos en un List, crearemos un listado de objetos Persona y ordenaremos por su nombre implementando la interface Comparable. 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploOrdenarObjetosEnList. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploOrdenarObjetosEnList. Esto es para generar la clase autnoma ElemploOrdenarObjetosEnList.java, que contendr el mtodo main (...). Clic Finish. 2. Creando la clase java Persona: Clic derecho en el proyecto ProyectoElemploOrdenarObjetosEnListy seleccionamos New->Java Class. Observe que aparece la ventana para crear una clase Java: New Java Class Para el nombre de la case (Class Name), ingrese Persona Para el paquete (Package), ingrese dominio Clic Finish.
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 19
Curso: "Programacin Java SE" 2013
Observe que se crea la clase Persona.java y es desplegada en el editor de cdigo del IDE. Modifique la clase Persona.java como se muestra en el Cdigo de abajo, poner especial atencin en el atributo id, nombre, apellidoPaterno, apellidoMaterno, email con sus respectivos mtodos getter/setter. package dominio;
/** * @author Andrs Guzmn */ public class Persona implements Comparable<Persona> {
//Declaramos los atributo de la clase Persona private int id; private String nombre; private String apellidoPaterno; private String apellidoMaterno; private String email;
//Constructor que construye el objeto y lo inicializa con valores public Persona(int id, String nombre, String apellidoPaterno) { this.id = id; this.nombre = nombre; this.apellidoPaterno = apellidoPaterno; }
public String getApellidoMaterno() { return apellidoMaterno; }
public void setApellidoMaterno(String apellidoMaterno) { this.apellidoMaterno = apellidoMaterno; }
public String getApellidoPaterno() { return apellidoPaterno; }
public void setApellidoPaterno(String apellidoPaterno) { this.apellidoPaterno = apellidoPaterno; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public int getId() { return id; }
public void setId(int id) { AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 20
Curso: "Programacin Java SE" 2013
this.id = id; }
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
/** * Mtodo que implementamos para comparar los objetos * y ordenarlos de forma natural * Biene de la interfaz Comparable */ @Override public int compareTo(Persona persona) { int cmp = 0; if (this.getNombre() != null) { cmp = this.getNombre().compareTo(persona.getNombre()); } return cmp; } }
2. Modificar el contenido generado por el IDE en la clase ElemploOrdenarObjetosEnList. Modifique la clase ElemploOrdenarObjetosEnList.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import dominio.Persona; import java.util.ArrayList; import java.util.Collections; import java.util.List;
/** * @author Andrs Guzmn */ public class ElemploOrdenarObjetosEnList { public static void main(String[] args) { // Creamos el objeto list y agregamos objetos del tipo persona List<Persona> personas = new ArrayList<Persona>(); personas.add(new Persona(1, "Andres", "Guzman")); personas.add(new Persona(2, "James", "Gosling")); personas.add(new Persona(3, "Rod", "Johnson")); personas.add(new Persona(4, "Juan", "Sultano")); personas.add(new Persona(5, "Pedro", "Perengano")); personas.add(new Persona(6, "Diego", "Montano")); personas.add(new Persona(7, "John", "Doe")); personas.add(new Persona(8, "Bruce", "Lee"));
//Ordenamos la lista con la clase de utilidad de las colecciones //Slo la podemos utilizar en las implementaciones de la interfaz List Collections.sort(personas); AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 21
Curso: "Programacin Java SE" 2013
//========== Imprimimos las personas ordenadas ========== System.out.println("========== Imprimimos las personas ordenadas ========== "); for(Persona persona: personas){ System.out.println(persona.getNombre() + " " + persona.getApellidoPaterno()); } } }
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploOrdenarObjetosEnList y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: ========== Imprimimos las personas ordenadas ========== Andres Guzman Bruce Lee Diego Montano James Gosling John Doe Juan Sultano Pedro Perengano Rod Johnson BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 22
Curso: "Programacin Java SE" 2013
Ejercicio 9: Construir y ejecutar un programa que usa LinkedList (implementa la interface List) 3. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploLinkedList. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploLinkedList. Esto es para generar la clase autnoma ElemploLinkedList.java, que contendr el mtodo main (...). Clic Finish.
4. Modificar el contenido generado por el IDE en la clase ElemploLinkedList. Modifique la clase ElemploLinkedList.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.LinkedList;
/** * @author Andrs Guzmn F */ public class ElemploLinkedList { public static void main(String[] args) {
// Creamos la instancia de un LinkedList y agregamos String. LinkedList<String> list = new LinkedList<String>(); list.add("Andres"); list.add("James"); list.add("Rod"); list.add("Juan"); list.add("Pedro"); list.add("Diego");
System.out.println(list+", size = "+list.size());
// Agregamos dos nombres nuevo uno al principio y otro al final del objeto LinkedList. list.addFirst("John"); list.addLast("Bruce"); System.out.println(list); System.out.println(list.getFirst() + ", " + list.getLast()); System.out.println(list.get(2)+", "+list.get(3));
// Eliminamos el primero y el ltimo elemento del LinkedList. list.removeFirst(); list.removeLast(); System.out.println(list);
// Eliminamos el segundo elemento list.remove("James"); System.out.println(list);
// agregamos a Bart AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 23
Curso: "Programacin Java SE" 2013
String s = new String("Bart"); list.add(s);
// Obtenemos el index de "Bart" System.out.println("Index de Bart = " + list.indexOf(s));
// Eliminamos el 3er elemento de la lista list.remove(2); System.out.println(list);
// Modificamos el valor de la 2da posicin a Bill list.set(1, "Bill"); System.out.println(list); } }
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploLinkedList y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: [Andres, James, Rod, Juan, Pedro, Diego], size = 6 [John, Andres, James, Rod, Juan, Pedro, Diego, Bruce] John, Bruce James, Rod [Andres, James, Rod, Juan, Pedro, Diego] [Andres, Rod, Juan, Pedro, Diego] Index de Bart = 5 [Andres, Rod, Pedro, Diego, Bart] [Andres, Bill, Pedro, Diego, Bart] BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 24
Curso: "Programacin Java SE" 2013
Ejercicio 10: Construir y ejecutar un programa que usa HashMap (implementa la interface Map) 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploHashMap. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploHashMap. Esto es para generar la clase autnoma ElemploHashMap.java, que contendr el mtodo main (...). Clic Finish.
2. Modificar el contenido generado por el IDE en la clase ElemploHashMap. Modifique la clase ElemploHashMap.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import java.util.HashMap; import java.util.Map;
/** * @author Andrs Guzmn F */ public class ElemploHashMap {
public static void main(String[] args) { // creamos un Mapa compuesto por nombre y el valor Map<String, Object> persona = new HashMap<String, Object>();
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploHashMap y seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: El apellido de Bruce es: Lee El email de Bruce es: bruce.lee@correo.com El pais de Bruce es: USA California San Francisco USA One Street 123 BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 26
Curso: "Programacin Java SE" 2013
Inner Class
Ejercicio 1: Construir y ejecutar un programa que usa Inner Class 1. Crear un proyecto Netbeans: Java Application Seleccionar File desde el men superior y seleccionar New Project. Seleccionar Java bajo Categories, y Seleccionar Java Application bajo Projects. Clic Next Bajo el panel Name and Location, para el Nombre del Proyecto (Project Name), ingrese ProyectoElemploInnerClass. Este es el nombre que se le dar al proyecto. Para el campo Create Main Class, ingresar ElemploInnerClass. Esto es para generar la clase autnoma ElemploInnerClass.java, que contendr el mtodo main (...). Clic Finish.
2. Creamos la clase java OuterClass: Clic derecho en el proyecto ProyectoElemploInnerClass y seleccionamos New->Java Class. Observe que aparece la ventana para crear una clase Java: New Java Class Para el nombre de la case (Class Name), ingrese OuterClass Para el paquete (Package), ingrese dominio Clic Finish. c AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 27
Curso: "Programacin Java SE" 2013
Observe que se crea la clase OuterClass.java y es desplegada en el editor de cdigo del IDE. Modifique la clase OuterClass.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios en negrita. package dominio;
/** * @author Andrs Guzmn */ public class OuterClass { // Definimos un atributo en la clase OuterClass private int data = 5;
public int getData() { return data; }
// Definimos una inner class public class InnerClass { private int data2 = 10;
public int getData2() { return data2; }
// Un mtodo de la clase inner public void alugunMetodo() { System.out.println("data desde OuterClass = " + data); System.out.println("data2 desde InnerClass = " + data2); } } }
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 28
Curso: "Programacin Java SE" 2013
3. Modificar el contenido generado por el IDE en la clase ElemploInnerClass. Modifique la clase ElemploInnerClass.java como se muestra en el Cdigo de abajo, poner especial atencin en los comentarios resaltados con negrita. import dominio.OuterClass;
/** * @author Andrs Guzmn */ public class ElemploInnerClass {
public static void main(String[] args) { // Creamos el objeto instancia de la clase outer que contiene // una inner class, la llamaremos outer class. OuterClass oc = new OuterClass();
// Creamos el objeto instancia de inner class (a tra vez de outer). OuterClass.InnerClass ic = oc.new InnerClass();
// Imprimimos data desde ambos outer class y inner class. System.out.println("Accediendo a data desde outer class = " + oc.getData()); System.out.println("Accediendo a data2 desde inner class = " + ic.getData2());
// Invocando un mtodo desde la inner class ic.alugunMetodo(); } }
Construir y ejecutar el programa Clic derecho del mouse sobre el proyecto ProyectoElemploInnerClassy seleccionar Run Observe el resultado en la salida de consola (Tab Output): run: Accediendo a data desde outer class = 5 Accediendo a data2 desde inner class = 10 data desde OuterClass = 5 data2 desde InnerClass = 10 BUILD SUCCESSFUL (total time: 0 seconds)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 29
Curso: "Programacin Java SE" 2013
Resumen
En esta prctica de laboratorio analizamos e ejercitamos a profundidad con diversos ejercicios el componente de coleccin de java y el uso de Inner Class.
Enva tus consultas a los foros! Aqu es cuando debes sacarte todas las dudas haciendo consultas en los foros correspondientes AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 30