Sei sulla pagina 1di 0

Curso: "Programacin Java SE" 2013

Componentes Avanzados: Colecciones y


InnerClass
Mdulo 6 / parte 1

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):








run:
true
true
true
true
true
[cuatro, tres, cinco, uno, dos]
Permite elementos duplicados = false
[cuatro, tres, cinco, uno, dos]
BUILD SUCCESSFUL (total time: 1 second)
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 6

Curso: "Programacin Java SE" 2013

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]);
}
}

// Eliminamos Duplicados
unicos.removeAll(duplicados);

System.out.println("nicos: " + unicos);
System.out.println("Duplicados: " + duplicados); }
}

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>();

ts.add("uno");
ts.add("dos");
ts.add("tres");
ts.add("cuatro");
ts.add("cinco");

System.out.println("Elementos del TreeSet = " + ts);

Set<Integer> ts2 = new TreeSet<Integer>();

ts2.add(1);
ts2.add(5);
ts2.add(4);
ts2.add(2);
ts2.add(3);
ts2.add(5);

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());

// Eliminamos un elemento
al.remove("U");
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");

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");

boolean encontrado = false;
for(String nombre: nombres){
if(param.equals(nombre)){
encontrado = true;
}
}

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>();

persona.put("nombre", "Bruce");
persona.put("apellido", "Lee");
persona.put("email", "bruce.lee@correo.com");
persona.put("edad", "31");

System.out.println("El apellido de Bruce es: " + persona.get("apellido"));
System.out.println("El email de Bruce es: " + persona.get("email"));

Map<String, String> direccion = new HashMap<String, String>();

direccion.put("pais", "USA");
direccion.put("region", "California");
direccion.put("ciudad", "San Francisco");
direccion.put("calle", "One Street");
direccion.put("numero", "123");

persona.put("direccion", direccion);
System.out.println("El pais de Bruce es: " + ((Map<String, String>)persona.get("direccion")).get("pais"));

for(String atr: direccion.values()){
System.out.println(atr);
}
}
}
AUTORES: andresguzf@gmail.com WEB: http://formacion-java.bolsadeideas.cl | | Colecciones y InnerClass 25

Curso: "Programacin Java SE" 2013


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

Potrebbero piacerti anche