Está en la página 1de 66

Libreras de Java

Java y Servicios Web I Master en Ingeniera Matemtica Manuel Montenegro Dpto. Sistemas Informticos y Computacin
Desp. 467 (Mat) montenegro@fdi.ucm.es

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java 2

18/Mayo/2012

Libreras de Java

'l entorno ,lue- permite crear instancias *e las clases conteni*as en la li.rer/a *e -ava

18/Mayo/2012

7. Libreras de Java

#ases envo#torio $wrapper%

'n ocasiones es $til tratar los tipos *e *atos .sicos como o.0etos.

int, char, boolean, byte, float, double! "

Muc&as funciones y clases tra.a0an con elementos 1ue &ere*an *e la clase Object.

#o funcionarn *irectamente con estos tipos .sicos.

'(iste una clase envoltorio por ca*a tipo .sico. Ca*a una tiene un $nico atri.uto! 1ue es *el tipo .sico al 1ue 2envuelven3.
7. Libreras de Java "

18/Mayo/2012

"

#ases envo#torio $wrapper%


'i(o bsico #ase envo#torio

int char boolean long double float short byte

Integer Character Boolean Long Double Float Short Byte

18/Mayo/2012

7. Libreras de Java

&

&

La c#ase Integer

Constructores

Integer int !alor" Integer String !alor" int get#alue " String toString " (&ere*a*o *e Object)

M+to*o *e acceso al valor .sico


Integer $ % ne& Integer '", y % ne& Integer (") int * % $.int#alue " + y.int#alue ") System.out.,rintf -.s + .s % .d/, $, y, *")

18/Mayo/2012

7. Libreras de Java

Boxing y Unboxing a*tomticos

Des*e la versin 4 *e -ava! se convierte automticamente entre las clases envoltorios y sus correspon*ientes tipos .sicos.

Si se intro*uce un tipo .sico *on*e se espera un o.0eto *e una clase envoltorio! se llama al constructor correspon*iente (.o(ing). Si se intro*uce un o.0eto *e una clase envoltorio *on*e se espera un tipo .sico! se llama al m+to*o *e acceso correspon*iente (un.o(ing).

+o,ing Integer $ % ', y % () -nbo,ing int * % $ + y) System.out.,rintf -.s + .s % .d/, $, y, *")


18/Mayo/2012 7. Libreras de Java 7

La c#ase Character

Constructor

Character char !alor" char char#alue " String toString " (&ere*a*o *e Object) static static static static static boolean isDigit char c" boolean isLetter char c" boolean isWhiteSpace char c" char toLowerCase char c" char toUpperCase char c"
7. Libreras de Java 8

M+to*o *e acceso al valor .sico


M+to*os *e utili*a*

18/Mayo/2012

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java .

18/Mayo/2012

La c#ase String

M+to*os *e utili*a*

char char0t int indice" int com,are1o String otra" int com,are1oIgnoreCase String otra" int inde$Of String str" int inde$Of String str, int inicio" int length " String substring int inicio, int fin" String to2,,erCase " String toLo&erCase " String trim "
7. Libreras de Java 10

18/Mayo/2012

10

La c#ase String
String cadena % 34sto es un ejem,lo3) t System.out.,rintln cadena.char0t 5"") System.out.,rintln cadena.inde$Of 3es3"") & System.out.,rintln cadena.toLo&erCase "") esto es *n e/em(#o System.out.,rintln cadena.to2,,erCase "") 0S'1 0S -2 0J0M3L1 4cadena4 System.out.,rintf 36.s63, 3 cadena 3.trim "")

18/Mayo/2012

7. Libreras de Java

11

11

La c#ase StringBuffer

5os o.0etos *e la clase String son inmuta.les.

#o pue*en cam.iarse una ve6 crea*os.

)n o.0eto StringBuffer pue*e ser mo*ifica*o tras su creacin.


M+to*o a,,end " M+to*o delete " M+to*o insert " "

'n el caso *e ca*enas muta.les! es ms eficiente 1ue crear Strings *es*e cero.
7. Libreras de Java 12

18/Mayo/2012

12

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java 1!

18/Mayo/2012

1!

La c#ase Random

7a1uete ja!a.util. 8epresenta una secuencia *e n$meros aleatorios. Constructores


7andom " 7andom long semilla" int ne$tInt int n" double ne$tDouble " double ne$t>aussian " 88 2nif. en 9:,...,n;<= 88 2nif :,<" 88 ? :,<"
1"

M+to*os

18/Mayo/2012

7. Libreras de Java

1"

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java 1&

18/Mayo/2012

1&

La c#ase Date

Sus instancias almacenan una fec&a y una &ora. Constructores


Date " Date long tiem,o" long get1ime " String toString "

M+to*os

5os valores long in*ica*os en el constructor in*ican el n$mero *e milisegun*os transcurri*os *es*e el 9 *e 'nero *e 9:7;! ;; ;; ;; <M=.

18/Mayo/2012

7. Libreras de Java

1)

1)

La c#ase GregorianCalendar

7ermiten convertir la fec&a>&ora conteni*a en un o.0eto Date a una representacin estructura*a en *ia! mes! a?o! &oras! minutos! segun*os! etc. Constructor

>regorianCalendar " !oid set1ime Date date" int get int cam,o"

M+to*os

18/Mayo/2012

7. Libreras de Java

17

17

La c#ase GregorianCalendar

'l argumento campo *el m+to*o get() reci.e una *e las constantes *efini*as como atri.utos estticos en la clase >regorianCalendar.

am(os dis(onib#es >regorianCalendar.470 >regorianCalendar.@407 >regorianCalendar.AO?1B >regorianCalendar.D0@COFCAO?1B >regorianCalendar.D0@COFCD44E >regorianCalendar.D44ECOFC@407 >regorianCalendar.BO27 >regorianCalendar.BO27COFCD0@ >regorianCalendar.AI?214 >regorianCalendar.S4CO?D >regorianCalendar.AILLIS4CO?D

18/Mayo/2012

7. Libreras de Java

18

18

0/em(#o
im,ort ja!a.util.F) ,ublic class Date1est 9 ,ublic static !oid main StringGH args" 9 Date d % ne& Date ") System.out.,rintf 31iem,o 4IOCBJ .dKn3, d.get1ime "") System.out.,rintf 34Lui!ale aJ .sKn3, d.toString "") >regorianCalendar gc % ne& >regorianCalendar ") gc.set1ime d") System.out.,rintf 3La fecha actual esJ .d8.d8.d3, gc.get >regorianCalendar.D0@COFCAO?1B", gc.get >regorianCalendar.AO?1B" + <, gc.get >regorianCalendar.@407"") = =

18/Mayo/2012

7. Libreras de Java

1.

1.

0/em(#o
im,ort ja!a.util.F) ,ublic class Date1est 9 ,ublic static !oid main StringGH args" 9 Date d % ne& Date ") System.out.,rintf 31iem,o 4IOCBJ .dKn3, d.get1ime "") System.out.,rintf 34Lui!ale aJ .sKn3, d.toString "") >regorianCalendar gc % ne& >regorianCalendar ") gc.set1ime d") System.out.,rintf 3La fecha actual esJ .d8.d8.d3, gc.get >regorianCalendar.D0@COFCAO?1B", gc.get >regorianCalendar.AO?1B" + <, gc.get >regorianCalendar.@407"") = =

18/Mayo/2012

7. Libreras de Java

20

20

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java 21

18/Mayo/2012

21

0,(resiones reg*#ares

)na e(presin regular es un patrn 1ue *escri.e un con0unto *e ca*enas. 7or e0emplo

GgmHato *escri.e las pala.ras -gato/ y -mato/. KdKdKd *escri.e una secuencia *e tres */gitos. des"Matar *escri.e las pala.ras -desatar/ y -atar/. G0;NHGa;*HF *escri.e una pala.ra 1ue comien6a con letra may$scula.

18/Mayo/2012

7. Libreras de Java

22

22

Sinta,is de e,(resiones reg*#ares


#ases de caracteres
Smbo#o GabcH GOabcH Ga;*H Ga;*:;(H . Kd KD Ks KS K& KD aracteres admisib#es a!.!c Cual1uier carcter e(cepto a!.!c Carcter *e a a z Carcter *e a a z! y *e 0 a 9. Cual1uier carcter Carcter num+rico Carcter no num+rico (@ ABC*D) Carcter .lanco! ta.ula*or! salto *e l/nea! etc. Carcter no .lanco! ta.ula*or! salto *e l/nea! etc. Carcter alfanum+rico! o s/m.olo *e su.raya*o. Carcter no alfanum+rico! ni s/m.olo *e su.raya*o

18/Mayo/2012

7. Libreras de Java

2!

2!

Sinta,is de e,(resiones reg*#ares


a(t*radores de #mites
Smbo#o O P Kb K0 K> a(t*ra Inicio *e l/nea %in *e l/nea 5/mite *e pala.ra Inicio *e entra*a %in *e entra*a

1(eradores
Smbo#o Q@ Q6@ Q" Knmero a(t*ra E segui*o *e F EoF Ggrupamiento E como un grupo *e captura 8eferencia a grupo *e captura anterior

18/Mayo/2012

7. Libreras de Java

2"

2"

Sinta,is de e,(resiones reg*#ares


*anti5icadores
0,(r QM QF Q+ Q9n= Q9n,= Q9n,m=

a(t*ra E una ve6! o ninguna. E cero o ms veces. E una o ms veces. E repeti*o n veces. E repeti*o n veces o ms. E repeti*o *e n a m veces.

Si se 1uiere capturar literalmente uno *e los caracteres especiales! &a *e intro*ucirse prece*i*o por el carcter especial K.

7or e0emplo! K captura el carcter .


7. Libreras de Java 2&

18/Mayo/2012

2&

Sinta,is de e,(resiones reg*#ares


0,(resi6n reg*#ar (des)?hace ^(des)?hace [ !"!#$%&'( 7/*ste hacer por deshacer.
9

hacer por deshacer. )lama al n*mero "+!,%-!+,!-+

.(([ !"#$,&%').) [ !"!#$%&' )lama al n*mero ("+) ,%-!+,!-+ ([ !"#/).0?1g.. ([c6#at).+


9 9

2o peso 3% 1g. 4 mi mu5er ,-1g.


9

cat6at& 6ut 6at6at


9
18/Mayo/2012 7. Libreras de Java 2)

2)

Sinta,is de e,(resiones reg*#ares


*anti5icadores $II%
8oraces QM QF Q+ Q9n= Q9n,= Q9n,m= 9eticentes QMM QFM Q+M Q9n=M Q9n,=M Q9n,m=M 3osesivos QM+ QF+ Q++ Q9n=+ Q9n,=+ Q9n,m=+

[a6#76 [a6#7?6 [a6#7/6

aa6aa6aa aa6aa6aa aa6aa6aa

Intenta a0ustar la ca*ena total. Si no es posi.le! retroce*e &asta lograr un a0uste. Intenta a0ustar la ca*ena vac/a. Si no es posi.le! avan6a &asta lograr un a0uste. Intenta a0ustar la ca*ena total. Si no es posi.le! no &ay a0uste.

18/Mayo/2012

7. Libreras de Java

27

27

Ms in5ormaci6n

&ttp >>HHH.regularIe(pressions.info

18/Mayo/2012

7. Libreras de Java

28

28

La c#ase 8attern

7a1uete ja!a.util.rege$ Sus o.0etos representan e(presiones regulares compila*as. #o tiene constructores p$.licos. Creacin

static Iattern com,ile String rege$" static boolean matches String rege$, CharSeLuence cadena" Aatcher matcher CharSeLuence cadena"
7. Libreras de Java 2.

M+to*os

18/Mayo/2012

2.

La c#ase 9atcher

8eali6a el reconocimiento *e una e(presin regular a una ca*ena espec/fica #o tiene constructor p$.lico. M+to*os

boolean matches " boolean find " int start " 8 int start int gru,o" int end " 8 int end int gru,o" String grou, " 8 String grou, int gru,o" String re,lace0ll String reem,la*o"
7. Libreras de Java !0

18/Mayo/2012

!0

0/em(#o
im,ort ja!a.util.rege$.F) ,ublic class 7ege$1est 9 ,ri!ate static final String cadena % 3+RS (<T5RU<URKn3 + 3+R< V5TTRTT<5Kn3 + 3+S( R:''U<T:T:Kn3) ,ri!ate static final String rege$ % 3KK+ KKd+"KKs+ KKd+"3 ) ,ublic static !oid main StringGH args" 9 Iattern , % Iattern.com,ile 7ege$1est.rege$") Aatcher m % ,.matcher 7ege$1est.cadena") &hile m.find "" 9 System.out.,rintf 30juste encontrado desde .d hasta .dKn3, m.start ", m.end "") System.out.,rintf 3IrefijoJ .s, 1elWfonoJ .sKn3, m.grou, <", m.grou, 5"") = = =

+RS (<T5RU<URKn+R< V5TTRTT<5Kn+S( R:''U<T:T:Kn

18/Mayo/2012

7. Libreras de Java

!1

!1

0/em(#o
im,ort ja!a.util.rege$.F) ,ublic class 7ege$1est 9 ,ri!ate static final String cadena % 3+RS (<T5RU<URKn3 + 3+R< V5TTRTT<5Kn3 + 3+S( R:''U<T:T:Kn3) ,ri!ate static final String rege$ % 3KK+ KKd+"KKs+ KKd+"3 ) ,ublic static !oid main StringGH args" 9 Iattern , % Iattern.com,ile 7ege$1est.rege$") Aatcher m % ,.matcher 7ege$1est.cadena") &hile m.find "" 9 System.out.,rintf 30juste encontrado desde .d hasta .dKn3, m.start ", m.end "") System.out.,rintf 3IrefijoJ .s, 1elWfonoJ .sKn3, m.grou, <", m.grou, 5"") = = =

m.find " % true


9 J

+RS (<T5RU<URKn+R< V5TTRTT<5Kn+S( R:''U<T:T:Kn


m.start() m.en*()

18/Mayo/2012

7. Libreras de Java

!2

!2

0/em(#o
im,ort ja!a.util.rege$.F) ,ublic class 7ege$1est 9 ,ri!ate static final String cadena % 3+RS (<T5RU<URKn3 + 3+R< V5TTRTT<5Kn3 + 3+S( R:''U<T:T:Kn3) ,ri!ate static final String rege$ % 3KK+ KKd+"KKs+ KKd+"3 ) ,ublic static !oid main StringGH args" 9 Iattern , % Iattern.com,ile 7ege$1est.rege$") Aatcher m % ,.matcher 7ege$1est.cadena") &hile m.find "" 9 System.out.,rintf 30juste encontrado desde .d hasta .dKn3, m.start ", m.end "") System.out.,rintf 3IrefijoJ .s, 1elWfonoJ .sKn3, m.grou, <", m.grou, 5"") = = =

m.find " % true


9 J

+RS (<T5RU<URKn+R< V5TTRTT<5Kn+S( R:''U<T:T:Kn


m.start() m.en*()

18/Mayo/2012

7. Libreras de Java

!!

!!

0/em(#o
im,ort ja!a.util.rege$.F) ,ublic class 7ege$1est 9 ,ri!ate static final String cadena % 3+RS (<T5RU<URKn3 + 3+R< V5TTRTT<5Kn3 + 3+S( R:''U<T:T:Kn3) ,ri!ate static final String rege$ % 3KK+ KKd+"KKs+ KKd+"3 ) ,ublic static !oid main StringGH args" 9 Iattern , % Iattern.com,ile 7ege$1est.rege$") Aatcher m % ,.matcher 7ege$1est.cadena") &hile m.find "" 9 System.out.,rintf 30juste encontrado desde .d hasta .dKn3, m.start ", m.end "") System.out.,rintf 3IrefijoJ .s, 1elWfonoJ .sKn3, m.grou, <", m.grou, 5"") = = =

m.find " % true


9 J

+RS (<T5RU<URKn+R< V5TTRTT<5Kn+S( R:''U<T:T:Kn


m.start() m.en*()

18/Mayo/2012

7. Libreras de Java

!"

!"

0/em(#o
im,ort ja!a.util.rege$.F) ,ublic class 7ege$1est 9 ,ri!ate static final String cadena % 3+RS (<T5RU<URKn3 + 3+R< V5TTRTT<5Kn3 + 3+S( R:''U<T:T:Kn3) ,ri!ate static final String rege$ % 3KK+ KKd+"KKs+ KKd+"3 ) ,ublic static !oid main StringGH args" 9 Iattern , % Iattern.com,ile 7ege$1est.rege$") Aatcher m % ,.matcher 7ege$1est.cadena") &hile m.find "" 9 System.out.,rintf 30juste encontrado desde .d hasta .dKn3, m.start ", m.end "") System.out.,rintf 3IrefijoJ .s, 1elWfonoJ .sKn3, m.grou, <", m.grou, 5"") = = =

m.find " % false

+RS (<T5RU<URKn+R< V5TTRTT<5Kn+S( R:''U<T:T:Kn

18/Mayo/2012

7. Libreras de Java

!&

!&

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java !)

18/Mayo/2012

!)

7rrays

'l m+to*o System.arrayCo,y permite copiar elementos *e un array en otro.

static !oid arrayCo,y Object origen, int ,osOrigen, Object destino, int ,osDestino, int longitud")
,osOrigen longitud

origen

,osDestino longitud destino

18/Mayo/2012

7. Libreras de Java

!7

!7

7rrays

5a clase ja!a.util.0rrays contiene una .ater/a *e m+to*os estticos $tiles para el mane0o *e arrays *e cual1uier tipo.

static static static static static static

int binarySearch intGH a, int cla!e" intGH co,yOf intGH a, int longitud" boolean eLuals intGH a, intGH b" !oid fill intGH a, int !alor" !oid sort intGH a" String toString intGH a"

18/Mayo/2012

7. Libreras de Java

!8

!8

7rrays
,ublic class 0rrays1est 9 ,ublic static !oid main StringGH args" 9 intGH arr % ne& intG<:H) 7andom r % ne& 7andom ") for int i % :) i X arr.length) i++" 9 arrGiH % r.ne$tInt <::") = System.out.,rintln 30rray inicialJ 3 + 0rrays.toString arr"") 0rrays.sort arr") System.out.,rintln 30rray ordenadoJ 3 + 0rrays.toString arr"") System.out.,rint 3Introduce nYmero a buscarJ 3") int num % ne& Scanner System.in".ne$tInt ") System.out.,rint 3La bYsLueda binaria de!uel!eJ 3") System.out.,rintln 0rrays.binarySearch arr, num"") = =

18/Mayo/2012

7. Libreras de Java

!.

!.

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java "0

18/Mayo/2012

"0

Java Collections Framework

)n array permite tener un con0unto *e o.0etos in*e(a*os por un n$mero. 'l tama?o *e un array 1ue*a fi0o en el momento *e su creacin. 'n la prctica! el n$mero *e elementos 1ue &a *e contener un array es *esconoci*o. '(isten tipos *e *atos ms sofistica*os para almacenar un n$mero varia.le *e elementos. 5a Java Collections Framework es un con0unto *e clases (conteni*as en el pa1uete ja!a.util) 1ue implementan estos tipos *e *atos.
7. Libreras de Java "1

18/Mayo/2012

"1

Java Collections Framework


5istas Colecciones
'lementos in*ivi*uales. ,$s1ue*a por elemento Secuencia (con *uplica*os) Importa or*en Secuencia (sin *uplica*os) #o importa or*en

Con0untos

Contene*ores

Grrays asociativos (Maps)


Gsocian claves con valores ,$s1ue*a por clave

18/Mayo/2012

7. Libreras de Java

"2

"2

Inter5a: Collection

'specifica funciones para mane0ar grupos *e o.0etos! conoci*os como elementos.


boolean add Object o" boolean add0ll Collection c" !oid clear " boolean contains Object o" boolean is4m,ty " boolean remo!e Object o" int si*e " Iterator iterator " ObjectGH to0rray "
7. Libreras de Java "!

18/Mayo/2012

"!

Inter5a: Collection

o##ection

List

Set

18/Mayo/2012

7. Libreras de Java

""

""

Inter5a: List

'specifica las operaciones *e una coleccin or*ena*a.

7roporciona control so.re *n*e insertar los elementos.

'(tien*e la interfa6 Collection a?a*ien*o! entre otras! las siguientes operaciones


Object get int indice" !oid set int indice, Object o" List subList int inicio, int fin"

18/Mayo/2012

7. Libreras de Java

"&

"&

Im(#ementaciones de List

0rrayList Implementacin como array. Cuan*o el array se llena! se reserva otro ms gran*e y se mueven los elementos *el array antiguo al array nuevo.

Kenta0a Gcceso a elementos iI+simos eficiente. Desventa0a Insercin y .orra*o ineficientes! cuan*o se reali6an en me*io *el array.

LinZedList Implementacin como lista enla6a*a. 'nfo1ue tra*icional.


Kenta0a Insercin y .orra*o eficientes. Desventa0a Gcceso a elementos iI+simos ineficiente. Kenta0a Gcceso concurrente. Descenta0a Ms ineficiente 1ue Grray5ist.

#ector 7areci*o a 0rrayList! pero con acceso concurrente seguro.


18/Mayo/2012

7. Libreras de Java

")

")

0/em(#o con #istas


im,ort ja!a.util.0rrayList) ,ublic class 0rrayList1est 9 ,ublic static !oid main StringGH args" 9 0rrayList lista % ne& 0rrayList ") lista.add ne& Integer R"") lista.add ne& Integer 5:"") lista.add ne& Integer <:"") lista.add ne& Integer <'"") System.out.,rintf 34l elemento tercero esJ .dKn3, lista.get 5"") System.out.,rintln lista.toString "") = =

18/Mayo/2012

7. Libreras de Java

"7

"7

0/em(#o con #istas


im,ort ja!a.util.0rrayList) ,ublic class 0rrayList1est 9 ,ublic static !oid main StringGH args" 9 0rrayList lista % ne& 0rrayList ") lista.add R") lista.add 5:") Boxing lista.add <:") lista.add <'") System.out.,rintf 34l elemento tercero esJ .dKn3, lista.get 5"") System.out.,rintln lista.toString "") = =

18/Mayo/2012

7. Libreras de Java

"8

"8

Inter5a: Set

'specifica las operaciones *e una coleccin en la 1ue no pue*e &a.er *uplica*os.

5os elementos no guar*an ning$n or*en en particular.

'(tien*e la interfa6 Collection! pero no a?a*e ninguna operacin nueva.

18/Mayo/2012

7. Libreras de Java

".

".

0/em(#o con con/*ntos


im,ort ja!a.util.1reeSet) ,ublic class 1reeSet1est 9 ,ublic static !oid main StringGH args" 9 1reeSet conjunto % ne& 1reeSet ") conjunto.add R") conjunto.add <'") conjunto.add <") conjunto.add 5:") conjunto.add R:") System.out.,rintln conjunto.subSet ', 5'"") = =

18/Mayo/2012

7. Libreras de Java

&0

&0

Inter5a: Map

'specifica un o.0eto 1ue asocia claves con valores (array asociativo)

'0emplo ,ase *e *atos 1ue asocia D#Is con *atos *e personas. Clave int! Kalor Iersona.

5a .$s1ue*a en un array asociativo se reali6a me*iante la clave *el elemento 1ue se 1uiere .uscar.

5os arrays *e -ava son casos particulares *e arrays asociativos! *on*e la clave es el /n*ice *el elemento *entro *el array.

18/Mayo/2012

7. Libreras de Java

&1

&1

Inter5a: Map

M+to*os *e la interfa6

!oid clear " boolean containsEey Object cla!e" Set entrySet " Object get Object cla!e" boolean is4m,ty " Set ZeySet " !oid ,ut Object cla!e, Object !alor" Object remo!e Object cla!e" [

18/Mayo/2012

7. Libreras de Java

&2

&2

Im(#ementaciones de Map

Son anlogas a las implementaciones *e la interfa6 Set 1reeAa, <uar*a los pares (clave! valor) or*ena*os por clave. 8e1uiere una operacin *e comparacin entre claves. BashAa, <uar*a los pares (clave! valor) en una ta.la hash utili6an*o el m+to*o hashCode() *e la clase *e la clave.

18/Mayo/2012

7. Libreras de Java

&!

&!

0/em(#o con con/*ntos


im,ort ja!a.util.1reeAa,) ,ublic class 1reeAa,1est 9 ,ublic static !oid main StringGH args" 9 1reeAa, ma, % ne& 1reeAa, ") ma,.,ut R, 3Da!id3") ma,.,ut <, 3Sil!ia3") ma,.,ut 5, 3\oaLu]n3") ma,.,ut ', 3Diana3") System.out.,rintln ma,") System.out.,rintln ma,.get R"") System.out.,rintln ma,.ZeySet "") System.out.,rintln ma,.!alues "") = =

18/Mayo/2012

7. Libreras de Java

&"

&"

0/em(#o con con/*ntos


im,ort ja!a.util.1reeAa,) ,ublic class 1reeAa,1est 9 ,ublic static !oid main StringGH args" 9 1reeAa, ma, % ne& 1reeAa, ") ma,.,ut R, 3Da!id3") ma,.,ut <, 3Sil!ia3") ma,.,ut 5, 3\oaLu]n3") ma,.,ut ', 3Diana3") System.out.,rintln ma,") System.out.,rintln ma,.get R"") System.out.,rintln ma,.ZeySet "") System.out.,rintln ma,.!alues "") = =

18/Mayo/2012

7. Libreras de Java

&&

&&

Iterar sobre *na co#ecci6n

5as su.clases *e Collection proporcionan m+to*os para recorrer to*os los elementos *e la coleccin correspon*iente. 'l recorri*o se reali6a me*iante un itera*or. Conceptualmente! un itera*or es como un puntero 1ue se?ala un *etermina*o elemento *e la lista y proporciona tres operaciones

Devolver el elemento apunta*o por el itera*or. ,orrar el elemento apunta*o por el itera*or. Mover el itera*or al siguiente elemento.
7. Libreras de Java &)

18/Mayo/2012

&)

La inter5a: Iterator
,ublic interface Iterator 9 ,ublic boolean has?e$t ") ,ublic Object ne$t ") ,ublic !oid remo!e ") =

,ublic !oid im,rimir4lementos Collection c" 9 88 Im,rime los elementos de una colecci^n, 88 uno ,or cada l]nea. Iterator it % c.iterator ") &hile it.has?e$t "" System.out.,rintln it.ne$t "") =

18/Mayo/2012

7. Libreras de Java

&7

&7

+*c#es sobre co#ecciones

Des*e la versin 4 *e -ava! se pue*en utili6ar .ucles for para iterar so.re los elementos *e una coleccin.

,ublic !oid im,rimir4lementos Collection c" 9 88 Im,rime los elementos de una colecci^n, 88 uno ,or cada l]nea. for Object e J c" System.out.,rintln e")

'n general! esta sinta(is es vli*a para recorrer cual1uier o.0eto 1ue implemente la interfa6 Iterable.

,ublic interface Iterable 9 ,ublic Iterator iterator ") =

18/Mayo/2012

7. Libreras de Java

&8

&8

ontenidos

Clases envoltorio Integer! Character! " String y StringBuffer #$meros aleatorios %ec&as y &oras '(presiones regulares )tili*a*es con arrays Java Collections Framework Clases gen+ricas
7. Libreras de Java &.

18/Mayo/2012

&.

#ases gen;ricas

'n versiones anteriores *e -ava! las colecciones tra.a0a.an con elementos 1ue eran *e tipo Object.

Kenta0a <enerici*a*. Desventa0a 5os m+to*os para acce*er a los elementos *e la coleccin *evuelven un o.0eto *e tipo L.0ect es necesaria una conversin (downcasting) al tipo 1ue nos interese.

Ierro , % ne& Ierro ") 0rrayList l % ne& 0rrayList ") l.add ,") , % Ierro" l.get :")
18/Mayo/2012 7. Libreras de Java )0

)0

#ases gen;ricas

5a versin 4 *e -ava intro*uce los gen+ricos! 1ue permiten construir clases param+tricas con respecto a un tipo. =o*as las clases *e la Java Collection Framework son paraetricas con respecto al tipo ' *e elementos 1ue se almacenan. 5os m+to*os 1ue acce*en a los elementos *e las colecciones *evuelven valores *el tipo '.

0rrayList:8erro; l % ne& 0rrayList:8erro; ") l.add ne& Ierro "")

Ierro , % l.get :")

18/Mayo/2012

7. Libreras de Java

)1

)1

Inter5a: CollectionX<_

's gen+rica con respecto al tipo *e elementos 1ue almacena.


boolean add < o" boolean add0ll CollectionX? e=tends <_ c" IteratorX<_ iterator " <GH to0rray " [ < ne$t " [
7. Libreras de Java )2

Interfa6 IteratorX<_

18/Mayo/2012

)2

Inter5a: ListX<_

'(tien*e la interfa6 CollectionX<_ a?a*ien*o! entre otras! las siguientes operaciones


< get int indice" !oid set int indice, < o" ListX<_ subList int inicio, int fin" [

Implementaciones *e ListX<_

0rrayListX<M LinZedListX<_
7. Libreras de Java )!

18/Mayo/2012

)!

Inter5a: Aa,X1,>_

M+to*os *e la interfa6

SetXAa,.4ntryX1,>__ entrySet " > get 1 cla!e" SetX1_ ZeySet " !oid ,ut 1 cla!e, > !alor" [

Implementaciones *e Aa,X1,>_

BashAa,X1,>_ 1reeAa,X1,>_

18/Mayo/2012

7. Libreras de Java

)"

)"

0/em(#o con con/*ntos gen;ricos


im,ort ja!a.util.1reeAa,) ,ublic class 1reeAa,1est 9 ,ublic static !oid main StringGH args" 9 1reeAa,XInteger&String_ ma, % ne& 1reeAa,XInteger,String_ ") ma,.,ut R, 3Da!id3") ma,.,ut <, 3Sil!ia3") ma,.,ut 5, 3\oaLu]n3") ma,.,ut ', 3Diana3") System.out.,rintln ma,") System.out.,rintln ma,.get R"") System.out.,rintln ma,.ZeySet "") System.out.,rintln ma,.!alues "") = =

18/Mayo/2012

7. Libreras de Java

)&

)&

9e5erencias

,. 'cNel =&inNing in -ava (Or* '*ition) Cap. 99 (no incluye GenericsP) 7. Deitel! Q. Deitel -ava. QoH to 7rogram (:t& '*ition) Cap. J;! J9! JJ M. #aftalin an* 7. Ra*ler -ava generics an* collections Documentacin *e li.rer/as *e -ava &ttp >>*ocs.oracle.com>0avase>6>*ocs>api>
))

18/Mayo/2012

7. Libreras de Java

))

También podría gustarte