Java • Familiarizarse con el uso de arrays y array lists para coleccionar valores. • Usar el ciclo for para el recorrido de arrays y array lists. • Aprender algoritmos comunes para el procesado de arrays y array lists. • Usar arrays multidimensionales. Objetivos • • • • • • Java Arrays Ciclo for mejorado Algoritmos con arrays Uso de arrays con métodos Arrays multidimensionales Array Lists Índice Java ¿Qué es un array? " # $ double data[]; Java % & double[] data; // declara var. array data ! Declaración de Arrays % ' % & ( Java " , " , ) *+ Creación de un array (instancia) " # $ % & Java # " " , Declaración y Creación de un array ! .& .% ../ " # ! $ ! % ! & ! Java 0 1 2 3 % - Declaración y Creación de un array ' 4' ! 4 4, 4 ! ! ! 4( Java 4 4) % 4 4) & $ 4 4* $ 4 4+ " # " # Ejemplos de declaración 4 . .# # $ Java , 7 5 6 89 6 ! Acceso a elementos de un array " # -' Java ! ! . Acceso a elementos de un array 6 89 ( # -' ! Java 5 5 :! ! . 6 6 Números de índice de array $ - 1 / 1 / " # 22 # -' # ! 0 5 Java ! 0. ! ! . # Longitud del array ! ! % " Referencia Variable Array != ) Java Una variable array contiene una referencia al contenido del array. La referencia es la localización del contenido del array en la memoria. .; .# ' + Valores Contenido del Array < Referencias a arrays " 3 Referencias Variable Array % Java Una variable array especifica la lacalización del array. Al copiar la referencia se consigue una segunda referencia al mismo array. # $ Alias de arrays Valores Contenido del Array $/ 6 # / .& . # 4$5 !/7 8 4 4$5 4 Java 94 4$5 / -4 % $ -' :9 4$5 ! ! . > ; /6 # ; . 96 //?/@! < Errores comunes con arrays : # /// . . & %/% ; ,;>* # >? %/% !0 ' : /6 # ; ; 0 # Java = < > = Errores comunes con arrays = $ - /// # $ /// ' / 1 ! 0 7@@7AB'8C: Java / ! 0 7@@7AB'8C: DD. > Recomendaciones de codificación $ % A D Java ; / / / . $ Esta variable es asignada a cada elemento del array en cada iteración del ciclo. Está definida sólo dentro del ciclo Ciclo for mejorado – for each 0 - ( , B 0 , $ Java = & " &9 E9 " 0 & 9 E E & " > Arrays multidimensionales = ' ' F78':' > F78':' ):,7((7' > Java > F78':' > ):,7((7' ):,7((7' Arrays multidimensionales - Declaración $ ' $ ' - # F / # / 6 / / # -. 3 Java I $ 1 F78':' DD. F $ 6 1 ):,7((7' 6DD. 6 0 $ 0 $-GH& G 6 . C 0 $ Arrays multidimensionales - Acceso ' F G* ? $ $ ' / 5 / ! G G@ G ) J -G G G: -' G3 G G? Java G. # F78':' ):,7((7' ! . F G G30 G G G: ! 4 Ejemplos de array bidimensional $ ' $ ' - ' - / / 6 / / / / DD. Java $-GH& > G 6 1 ):,7((7' $-GH& G D 1 F78':' $-GH G 6 . 6DD. . Ejemplos de array bidimensional 6 . - $ $ - - $ / / D ! 0 L K 1 . ; / Java . ! 0 DD. Algoritmos comunes / ! 0 - $ 9 9 $ - $ - $ =5 9 9 L L 9 $ 1 9 ; . . / . Java $ ! 0 $ - - DD. 1 Algoritmos comunes ; . . ' $ = ( ' $ ' . / / 6 # / / / / L / / > / ! 0 Java ' ! 7 . -G M G. /K -7 < - 1 !- DD. .. / ' Algoritmos comunes !-. 0 - ' $ -$ $ - # D( $ 5 ' / . 1 DD / $ / / # / -4O 5 . Java -4P ! 0 22 N$ . $ 4. Algoritmos comunes ; 4 D . .- ./ > > 5 + Java ' = RR E ' = F) ( Algoritmos comunes Q > $ - Java ' = RR D 1 Algoritmos comunes ' = R DD. G . > $ $ - Java ' = DD ' = 1 : R ' = / , ! 0. Algoritmos comunes L RR. / / / / / / . # 4$ ( 6 # / 7 /7 / # E I+ 7 # 4$- ' Java )H $ $ / / Algoritmos comunes ! 0. 4$ / / / .# .# & , 6 # / , /7 7 , / Java 4$5 K S 5 7 Algoritmos comunes / ! / 4$ ! 0. 0 $ . . - - - ' = /0 P 9 , ' = ' = DD / 1 # 9 , ( Java ' = -. )7UB8PF?J' -. -. 22 / 9 , ( / ) 1 P?)5:@B4TB8PF?J' ! 0 DD. Algoritmos comunes / ! 0. 5 + - < ? > < > > $ ! < < > Java > > > $ > ( Algoritmos comunes - Ordenación ) % .' .? C ! + ! ! ! > ≤ Java ≤ ) ≤ + > Algoritmos comunes - Ordenación > 7 7 / / - & G ) $ !BB*** $ !BB - - H B . & G BK$ > $ 5 B 4 BH > Java # ) > B +! B& ' = . B? L > ! J ? $ < + Algoritmos comunes - Ordenación > $ . . M?L N + ) > < ! O) < Java , < + ) 5 < Análisis de Algoritmos: Complejidad > + E " 7 ! 0 $ 9 0 1 L ; - D ( 9 9 D 0 V Java ) + . Análisis de Algoritmos: Complejidad J E D D ! 9 W W W ! = W Java ) +≤ ) + 6R9 ) + D - Q . D EX- Q X- Q . Q " ; ! 9 4 ) + ) + P6 6≥9 ) + <! 3 . Q ?) + R3 - . " (I PV . ) + W - E ?) ) ++ ≥ 6 J .; $ Análisis de Algoritmos: Complejidad - ) 5 < > + 5 Java > ?) 0+ $ 5 5 Método de Ordenación: burbuja , ? 6I I3 6I I3 9T :Q Q0 90 22 QQ 9S I3 U 6I 0S $ 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I 9T I3 9T 6I I3 :Q Q0 90 22 QQ 9S 6I U 9T $ 0S 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I :Q 9T I3 :Q 9T 6I I3 Q0 90 22 QQ 9S 6I U :Q $ 0S 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I Q0 :Q 9T I3 Q0 :Q 9T 6I I3 90 22 QQ 9S 1S 6I U Q0 $ 0S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I 90 Q0 :Q 9T I3 90 Q0 :Q 9T 6I I3 22 QQ 9S 6I U 90 $ 0S 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I 22 90 Q0 :Q 9T I3 22 90 Q0 :Q 9T 6I I3 QQ 9S 6I U 22 $ 0S 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I QQ 22 90 Q0 :Q 9T I3 QQ 22 90 Q0 :Q 9T 6I I3 9S 6I U QQ $ 0S 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I QQ 22 90 Q0 :Q 9T I3 QQ 22 90 Q0 :Q 9T 6I I3 9S I3 :Q Q0 9T 22 QQ 90 6I 0S 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I QQ 22 90 Q0 :Q 9T I3 QQ 22 90 Q0 :Q 9T 6I I3 9S I3 :Q Q0 9T 22 QQ 90 6I 0S :Q I3 Q0 22 QQ 9T 90 6I 1S Java QS 2S IS Método de Ordenación: burbuja 3S ? 6I QQ 22 90 Q0 :Q 9T I3 QQ 22 90 Q0 :Q 9T 6I I3 9S I3 :Q Q0 9T 22 QQ 90 6I 0S :Q I3 Q0 22 QQ 9T 90 6I 1S Java :Q I3 22 QQ Q0 9T 90 6I QS :Q I3 22 QQ Q0 9T 90 6I 2S :Q I3 22 QQ Q0 9T 90 6I IS Método de Ordenación: burbuja :Q I3 22 QQ Q0 9T 90 6I 3S $ $ ' $ / $ - - - 4 6 / 6 6D 6 5 # 1 1 / L 6 ! ! " . " E - / Java ! 0 . DD. %( / ! 0 DD. ! 0R 6 L 6RR. 6D . K 6 6D -' 8 7 K Método de Ordenación: burbuja - = - 5 < 5 L Java < ( > − ?) 0+ 5 R0 5 Método de Ordenación: inserción QQ 9 3 I 2 Q 1 0 QQ ? 22 22 90 90 Java Q0 Q0 :Q :Q 9T 9T 6I 6I Método de Ordenación: inserción I3 I3 QQ 90 9 0 3 I 2 Q 1 QQ ? QQ 22 22 22 90 90 Java Q0 Q0 Q0 :Q :Q :Q 9T 9T 9T 6I 6I 6I Método de Ordenación: inserción I3 I3 I3 QQ 90 90 9 0 1 3 I 2 Q QQ ? Q0 QQ 22 22 QQ 22 90 90 Java 22 Q0 Q0 Q0 :Q :Q :Q :Q 9T 9T 9T 9T 6I 6I 6I 6I Método de Ordenación: inserción I3 I3 I3 I3 QQ QQ 90 90 90 90 6I 6I ? 9 0 1 Q 2 I 3 90 90 9T Q0 Q0 QQ 22 22 9T 9T Q0 QQ QQ 22 90 90 Java Q0 Q0 QQ 22 22 Q0 Q0 Q0 QQ QQ 22 :Q :Q :Q :Q :Q 22 22 :Q 9T 9T 9T 9T 9T I3 :Q 6I 6I 6I 6I 6I 6I Método de Ordenación: inserción :Q I3 I3 I3 I3 I3 I3 I3 $ $ ' - 0 - 6 R 8 # / 6D -6 L 6D 4 / 1 22 1 - 6 -' 1 / / 6 ! " Java ! 0 . E DD. DD. . " 6 . 6R ! 0 : ! 8 7 Método de Ordenación: inserción - V W # < L Java ?) 0+ 5 V9W X V W VW L VWX Método de Ordenación: selección 6I 9 3 I 2 Q 1 0 QQ ? 22 22 90 90 Java Q0 Q0 :Q :Q 9T 9T QQ 6I Método de Ordenación: selección I3 I3 6I 6I 9 0 3 I 2 Q 1 QQ ? 90 22 22 22 90 90 Java Q0 Q0 Q0 :Q :Q :Q 9T 9T 9T QQ QQ 6I Método de Ordenación: selección I3 I3 I3 6I 6I 6I 9 0 1 3 I 2 Q QQ ? 90 90 22 22 9T 22 90 90 Java Q0 Q0 Q0 Q0 :Q :Q :Q :Q 22 9T 9T 9T QQ QQ QQ 6I Método de Ordenación: selección I3 I3 I3 I3 QQ 6I 6I 6I 6I 6I 6I 6I ? 9 0 1 Q 2 I 3 90 90 90 90 90 90 22 22 9T 9T 9T 9T 9T 22 90 90 Java Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 QQ QQ QQ :Q :Q :Q :Q :Q 22 22 22 22 22 9T 9T 9T I3 :Q :Q QQ QQ QQ QQ 6I Método de Ordenación: selección :Q I3 I3 I3 I3 I3 I3 I3 $ $ ' $ - $ - F F / 8 $ - - 4 F ' # / N 1 1 - . D -' / ! 0 . 1 . 1 ! " Java F O ! E DD. 8 ! 0 R W / ! 0 F / . " 7 DD. F I DD. Método de Ordenación: selección - . ." . ! < ) $ $ $ Java + ?) Y ) + + Método de Ordenación: Quicksort > 22 22 22 9T 9T ' QQ QQ 6I 6I 6I 90 90 90 90 90 Q0 Q0 Q0 Q0 Q0 Java :Q :Q :Q :Q :Q 22 22 9T 9T 9T QQ QQ QQ 6I 6I I3 I3 I3 I3 I3 Método de Ordenación: Quicksort 9T 90 90 90 6I 6I 6I 6I 9T 9T 9T 90 Q0 Q0 Q0 Q0 Java QQ QQ QQ :Q 22 22 22 22 I3 :Q :Q QQ :Q I3 I3 I3 Método de Ordenación: Quicksort $ ' 8 - 8 # [ Z / - 4 Y # / Z 1 - -' / / ! 0 . E DD. . " ! 0R . ! " Java ! 7 Método de Ordenación: Quicksort # [ =[ Z 6 6RR $ - =[ 1 6. $ - 1 . DD [ [ , # 0 - 1 6. 0 0 6 $ - 1 6. # 1 L Z Z - # # - . . Java DD 6RR =[ D - =[ ! 6. . # # R =[. @ @ 6 =[ / 6 . # Método de Ordenación: Quicksort # # - 1 L . ./ . .# D( . .- D( $ < Java ?) + Algoritmos comunes - Búsqueda . / / $ -$ ' ' / / -GP -G: Java + UUU + $ $ 0 !0 / ! 0 R 0 1 0 !0 22 N$ . D 0 !0. ) $ 0 + . $ : $ 1 0 + D 5 0 !0 R 5 0 G. . Búsqueda binaria ! G D D . $ <! - .- ( J D ; - - Java . . 5 . Paso de arrays a métodos $ <! . - # 1 K $ / # ! 0 Java - - DD. Paso de referencias . $ . - ..- # $ - 6 # / & < /7 Java + ( 5 Listas ) < 5 ! 7 . . . . . = ( .' . .% ' ! ! ! , ! ! ( 1' !L 1 L 7 > Java ( M 7 5 Uso de Listas ( ) O 1' !L-. X+ . . -43 / - > - / 43 4. 4. Java , ! , Inserción de un elemento con add() / 47 4. Java Inserción de un elemento con add() ' ' ' 7 ! ! 45 - / 45 # -6. 4. 4. !L 4. / / / -47 -43 / / / 1' ( /! /! 4. - Java - . - . / 7 = -. R ( Uso de ArrayList . 1' !L-. 7 7 $ # \7 ( !L P 1' !L $ / -GO G. 1' $ ( ( Java ! 7 ! ( 1' Copia de ArrayList !L- & . - $ 7 @ 3 < ' 7S - ( / 1' ! - 7 !L ( /! / - .. = -. R 1' !L L Java 7 # 5 ( -7 ( 1' # RR. & 1' !L-. -V - 7 ArrayList y métodos !L ( . . , 9 .# , 9 Z 9 %/% %/% 9 9 Java ! ! Z .." 9 * H 5 Wrappers y auto-boxing 7 ' / / ( .' % %/% - L 1, - %/% . -9. 9 /! 9 & L - . Java 7 > ( 1, 9 ! 9 ! 9 ! * * & Wrappers y auto-boxing - L-. Q ! -. / = -. . ! 0 / ! > Q . - $ $ ! ! Java $ - - $ - - & /! ! ! - 1 ! - . L /! L 1 ! 0 . - . / = -. ! - . /! / . Algoritmos con ArrayList DD. DD. . . . . . & , M< O - ! Java ( Cuándo usar Arrays o ArrayList % $ & Java & - ( Cuidado con length o size