Subido por Adrian Bogado

Arrays y colecciones - programacion I

Anuncio
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
Descargar