Sunteți pe pagina 1din 15

PRCTICA #5

Tema de la prctica:
ArrayList

MA. DE LOS ANGELES JUNCO REY

ARRAYLISTUTILAPP.JAVA
C ON T IE N E VA R IOS M TOD OS E S T T IC OS QU E S E D E S C R IBE N
A C ON T IN UACIN
MA. DE LOS ANGELES JUNCO REY

OCURRENCIAS
Implementa un mtodo esttico genrico, con comodn, que reciba una coleccin
que implemente List y un dato de tipo Object y regrese el total de ocurrencias de
ese dato en la coleccin. NO puedes usar mtodos de la clase Collections.
public static int ocurrencias(List <?> list, Object target)
Prueba est mtodo con:
Un ArrayList de Integer
Un ArrayList de String

Contesta lo siguiente como comentario previo al mtodo ocurrencias:


Por qu debe recibirse el target como un Object?

MA. DE LOS ANGELES JUNCO REY

CADENAMASLARGA
Implementa un mtodo esttico genrico que reciba una coleccin que
implemente List<String> y regrese la cadena con la mayor longitud. NO
puedes usar mtodos de la clase Collections.
public static<T> String cadenaMasLarga(List<String> lista)

Prueba est mtodo con:


Un ArrayList de String

Contesta lo siguiente como comentario previo al mtodo ocurrencias:


Por qu debe recibirse el target como List<String> y no como List<T>?

MA. DE LOS ANGELES JUNCO REY

CADENAMAYOR
Implementa un mtodo esttico genrico que reciba una coleccin que
implemente List<String> y regrese la cadena mayor, lexicogrficamente.
NO puedes usar mtodos de la clase Collections.
public static<T> String cadenaMayor(List<String> lista)

Prueba est mtodo con:


Un ArrayList de String

Contesta lo siguiente como comentario previo al mtodo ocurrencias:


Por qu debe recibirse el target como List<String> y no como List<T>?

MA. DE LOS ANGELES JUNCO REY

ELIMINA DUPLICADOS
Implementa un mtodo esttico genrico que reciba una coleccin que implemente
List y elimine los elementos duplicados, dejando slo una ocurrencia de cada dato.
NO puedes usar mtodos de la clase Collections.
public static <T> void eliminaDuplicados(List<T> lista)

Prueba est mtodo con:


Un ArrayList de Integer
Un ArrayList de String

Posteriormente, cambia la firma de tu mtodo por la siguiente y verifica que siga


funcionando sin problema alguno:
public static void eliminaDuplicados (List <?> lista)

El ? es un comodn que puede utilizarse cuando no es necesario conocer el tipo de


dato. Es decir, en la implementacin no utilizaremos comparaciones o downcast

MA. DE LOS ANGELES JUNCO REY

ELIMINA MAYORES
Implementa un mtodo esttico genrico que reciba una coleccin que implemente
List y elimine los elementos mayores al dato que se recibe de target.
NO puedes usar mtodos de la clase Collections.
public static <T extends Comparable <? super T>>
void eliminaMayores (List <T> lista, T target)
Prueba est mtodo con:
Un ArrayList de Integer
Un ArrayList de String

Contesta lo siguiente como comentario previo al mtodo elminaMayores:


Por qu debe recibirse una coleccin de List con un tipo genrico <T> y NO con un
comodn?
List <T>

en lugar de List<?>
MA. DE LOS ANGELES JUNCO REY

SALIDA
ESPERADA

MA. DE LOS ANGELES JUNCO REY

PROBAR CLASE COLLECTIONS


En el main invoca los mtodos correspondientes de la clase Collections,
aplicados al ArrayList a, para generar las siguientes salidas:

*** Probando la clase Collections sobre el ArrayList a ***


ArrayList de enteros ordenado: [2, 2, 2, 3, 3, 4, 5, 6, 7, 7, 7, 8, 8, 9, 9, 11, 22, 34, 46,
55, 73, 73, 96, 99]
ArrayList de enteros invertido: [99, 96, 73, 73, 55, 46, 34, 22, 11, 9, 9, 8, 8, 7, 7, 7,
6, 5, 4, 3, 3, 2, 2, 2]

ArrayList de enteros desordenado: [3, 34, 96, 3, 4, 7, 2, 2, 2, 73, 9, 8, 6, 55, 73, 7,


22, 11, 99, 7, 9, 5, 8, 46]
ArrayList de enteros ordenado: [2, 2, 2, 3, 3, 4, 5, 6, 7, 7, 7, 8, 8, 9, 9, 11, 22, 34, 46,
55, 73, 73, 96, 99]

ArrayList tiene un 34 en la posicion: 17


ArrayList NO tiene un 64
MA. DE LOS ANGELES JUNCO REY

ARRAYLISTCANCIONESAPP.JAVA
U S O D E A R R AY L I S T D E O B J E TO S T I P O C A N C I O N

MA. DE LOS ANGELES JUNCO REY

10

EJERCICIOS CON ARRAYLIST Y CANCIONES


Modifica el programa proporcionado por tu profesora
(ArrayListCancionesApp.java) de la siguiente forma:
En el mtodo main() lee el archivo de canciones proporcionado por tu profesora (Canciones.dat),
crea objetos tipo Cancion y agrgalos a un ArrayList de canciones.
Implementa y prueba un mtodo recursivo que filtre el ArrayList de canciones original (cancion),
segn el gnero de la cancin (parmetro str). El resultado debe quedar en el ArrayList que se
manda de parmetro (filtro). El parmetro ndice originalmente recibe el tamao del ArrayList de
canciones 1. El parmetro str tiene el valor: Romantica

La firma del mtodo es la siguiente:

public static void


filtraR (List<Cancion> cancion, int indice, String str, ArrayList<Cancion> filtro)

MA. DE LOS ANGELES JUNCO REY

11

EJERCICIOS CON ARRAYLIST Y CANCIONES


Implementa y prueba un mtodo iterativo que recibe el ArrayList de
canciones original (cancion) y regresa un ArrayList con aquellas
canciones cuyo ttulo es mayor a Medusa.

La firma del mtodo es la siguiente:


public static ArrayList<Cancion>
mayoresA (List<Cancion> cancion, Cancion cancionComp)

MA. DE LOS ANGELES JUNCO REY

12

SALIDA
ESPERADA

MA. DE LOS ANGELES JUNCO REY

13

QU DEBES ENTREGAR?
Enviar un correo electrnico a, ajunco@itesm.mx, con un documento llamado
Practica 5 ArrayList.zip que incluya los siguientes archivos fuente:
ArrayListUtilAPP.java
ArrayListCancionesAPP.java
Cada documento .java que generes o modifiques DEBE incluir, en la parte superior la siguiente
documentacin (con la informacin correcta):
/* Clase <nombre clase>.java
Autor 1: <nombre alumno 1> <matrcula alumno 1>
Autor 2: <nombre alumno 2> <matrcula alumno 2>
Fecha: <fecha de entrega>
Prctica # 5 - ArrayList
*/

Subject del correo (segn el grupo al que pertenece el equipo):


ED Prctica #5 ArrayList Grupo 10:00 a 11:30
ED Prctica #5 ArrayList Grupo 13:00 a 14:30
MA. DE LOS ANGELES JUNCO REY

14

QU DEBES ENTREGAR?
Cada documento .java que generes o modifiques DEBE incluir, en la parte superior
la siguiente documentacin (con la informacin correcta):
/* Clase <nombre clase>.java
Autor 1: <nombre alumno 1> <matrcula alumno 1>
Autor 2: <nombre alumno 2> <matrcula alumno 2>
Fecha: <fecha de entrega>
Prctica # 3 - ArrayList
*/

Subject del correo:


ED Prctica #3 ArrayList Grupo 1 (grupo de 11:30 a 13:00)
ED Prctica #3 ArrayList Grupo 2 (grupo de 13:00 a 14:30)

En el cuerpo del correo los nombres de los integrantes del


equipo
MA. DE LOS ANGELES JUNCO REY

15

S-ar putea să vă placă și