1
00:00:00,910 --> 00:00:02,380
Hola y bienvenidos a esta elección.

2
00:00:02,380 --> 00:00:07,090
A continuación vamos a dejar el tema de colecciones genéricas en Java están listos.

3
00:00:07,150 --> 00:00:10,950
Vamos bien abrimos nuestro IDE.

4
00:00:11,030 --> 00:00:16,200
Vamos a cerrar cualquier proyecto que tengamos abierto y derecho Claws y vamos a crear un nuevo proyecto.

5
00:00:16,210 --> 00:00:25,070
Nos siguen Fineo Project Wild Maybe en Java Application el nombre del proyecto se va a llamar colecciones

6
00:00:25,070 --> 00:00:25,760
genéricas

7
00:00:29,230 --> 00:00:33,440
lo depositamos en la carpeta de cursos diagonal inversa Java.

8
00:00:33,830 --> 00:00:36,650
El grupo Heydi va a ser MX con G.M. de Global mentoring.

9
00:00:36,710 --> 00:00:44,660
La versión 1.0 y el nombre del paquete vamos a dejarlo vacío damos sigue en finalizar ahora vamos a

10
00:00:44,660 --> 00:00:49,340
crear una clase de Derecho nio Java class que se va a llamar

11
00:00:52,410 --> 00:00:57,950
colecciones genéricas y el paquete también se llama colecciones genéricas

12
00:01:01,840 --> 00:01:09,310
agregamos un método main y esto va a ser muy similar al tema de colecciones pero a diferencia del tema

13
00:01:09,310 --> 00:01:14,560
de colecciones que hemos visto anteriormente donde los elementos que se almacenaban eran de tipo object.

14
00:01:14,560 --> 00:01:19,660
En este caso ya no vamos a permitir almacenar simplemente tipos Object sino que vamos a especificar

15
00:01:19,690 --> 00:01:26,780
el tipo que debe de almacenar la colección así que vamos a definir una variable utilizando la interfase

16
00:01:26,780 --> 00:01:27,300
de lista.

17
00:01:28,240 --> 00:01:37,300
Y vamos a indicar entre paréntesis que vamos a almacenar únicamente elementos de tipo string así que

18
00:01:37,300 --> 00:01:41,170
en este caso esta lista únicamente va almacenar elementos de tipo string

19
00:01:44,260 --> 00:01:51,200
y posteriormente distanciamos esta lista utilizando la clase concreta Array List importamos estas clases

20
00:01:52,350 --> 00:01:59,330
ponemos punto asterisco en Java punto y útil ya que vamos a utilizar varias clases de este paquete y

21
00:01:59,340 --> 00:02:04,140
podemos observar con esto suficiente del lado izquierdo ya estamos indicando el tipo de dato que va

22
00:02:04,140 --> 00:02:10,580
a almacenar nuestra lista y si tratamos de almacenar elementos que no son de tipo string desde el momento

23
00:02:10,600 --> 00:02:11,490
que mandamos a llamar.

24
00:02:11,490 --> 00:02:17,730
El método ADB podemos observar que en lugar de Objet únicamente nos permite almacenar elementos de tipo

25
00:02:17,850 --> 00:02:24,650
string y podemos observar que el método ADB utiliza el tipo genérico.

26
00:02:24,750 --> 00:02:30,540
Esto es similar como el tipo genérico té que utilizamos anteriormente pero se utiliza para elementos

27
00:02:30,660 --> 00:02:32,070
de una colección.

28
00:02:32,070 --> 00:02:35,220
Por eso no se utilizó té sino la variable.

29
00:02:35,220 --> 00:02:41,990
Sin embargo es una simple nomenclatura así que si tratamos de agregar elementos que no sean de tipo

30
00:02:42,080 --> 00:02:47,450
string por ejemplo como un entero podemos observar que el compilador en automático nos marca un error

31
00:02:47,750 --> 00:02:53,420
y nos manda el mensaje de tipos incompatibles el entero no puede ser convertido a un string de manera

32
00:02:53,420 --> 00:03:00,640
automática así que esa es la ventaja de utilizar colecciones genéricas ya que no podemos almacenar ni

33
00:03:00,640 --> 00:03:05,420
siquiera por error tipos que no corresponden con el tipo que deseamos almacenar.

34
00:03:05,440 --> 00:03:09,750
En este caso únicamente podemos almacenar tipos string

35
00:03:13,110 --> 00:03:15,360
y así podemos agregar cualquier tipo de elementos

36
00:03:22,290 --> 00:03:28,950
almacenados por ejemplo los elementos de Juan Carla y vamos a repetir el valor de Juan para ver qué

37
00:03:28,950 --> 00:03:34,740
es lo que sucede con los elementos repetidos en las listas ya sabemos que permite elementos duplicados

38
00:03:34,980 --> 00:03:46,130
pero simplemente para comprobarlo vamos a crear el método de imprimir el cual recibe una colección que

39
00:03:46,130 --> 00:03:51,980
es el tipo padre de todas las colecciones pero en este caso vamos a indicar que va a almacenar elementos

40
00:03:52,160 --> 00:03:58,280
de tipo string este método va a ser privado de tipo Static

41
00:04:01,030 --> 00:04:01,930
no regresa nada

42
00:04:07,640 --> 00:04:08,520
y aquí corrijo.

43
00:04:08,520 --> 00:04:14,530
Debe ser Collection y ahora vamos a iterar cada uno de los elementos de esta colección a que una de

44
00:04:14,530 --> 00:04:19,930
las ventajas es que debido a que hemos indicado que vamos a almacenar únicamente elementos de tipo string

45
00:04:20,260 --> 00:04:25,660
también cuando recorremos cada uno de los elementos ya no vamos a utilizar obvien sino que podemos utilizar

46
00:04:25,660 --> 00:04:33,110
directamente el tipo que sabemos que está almacenando la colección así que definimos el elemento de

47
00:04:33,110 --> 00:04:39,490
tipo string para almacenar cada uno de los elementos de la colección posteriormente indicamos la colección

48
00:04:39,490 --> 00:04:43,540
que vamos a recorrer y con esto ya estamos listos para iterar cada uno de los elementos

49
00:04:47,370 --> 00:04:54,490
y mandamos simplemente de imprimir el elemento que estamos recorriendo en este momento finalmente imprimimos

50
00:04:54,490 --> 00:04:58,510
un salto de línea y mandamos a llamar.

51
00:04:58,510 --> 00:05:05,530
Este método de imprimir le pasamos la colección genérica que hemos declarado y podemos observar que

52
00:05:05,530 --> 00:05:12,340
este método está recibiendo sin ningún problema la clase de tipo lista de tipo string debido a que también

53
00:05:12,400 --> 00:05:18,250
el tipo de colección la interfase colección estamos indicando que va almacenar elementos de tipo string

54
00:05:19,060 --> 00:05:20,650
guardamos cambios y ejecutamos

55
00:05:23,750 --> 00:05:29,000
y podemos ver que podemos recorrer cada uno de los elementos sin ningún problema y también los elementos

56
00:05:29,000 --> 00:05:34,100
duplicados en este caso como estamos utilizando el tipo list se almacena también sin ningún problema

57
00:05:36,370 --> 00:05:41,010
y se despliega en el orden que hemos agregado cada uno de los elementos.

58
00:05:41,020 --> 00:05:44,800
Esto debido a que es una colección de tipo lista.

59
00:05:44,800 --> 00:05:50,960
Ahora vamos a utilizar nuestra colección de tipo set también vamos a indicar que va a ser del tipo String.

60
00:05:51,670 --> 00:05:54,100
Obviamente aquí podemos definir cualquier otro tipo.

61
00:05:54,100 --> 00:05:58,720
En este caso únicamente vamos a utilizar los tipos de string para que podamos utilizar este método de

62
00:05:58,720 --> 00:06:02,710
imprimir pero podríamos indicar cualquier otro tipo no hay ningún problema.

63
00:06:04,470 --> 00:06:05,730
La variable se llama missed

64
00:06:08,610 --> 00:06:16,770
y utilizamos la clase concreta Jacek para inicializar esta variable missed y empezamos a agregar elementos.

65
00:06:16,770 --> 00:06:23,420
También podemos observar que únicamente puede almacenar elementos de tipo string por ejemplo almacenamos

66
00:06:23,420 --> 00:06:24,260
el valor de 100

67
00:06:27,130 --> 00:06:35,110
el valor de 200 pero si tratamos de almacenar un valor repetido por ejemplo volvemos a agregar el valor

68
00:06:35,110 --> 00:06:46,800
de 200 vamos a ver qué sucede y mandamos a imprimir mi set ponemos entre comentarios la primera llamada

69
00:06:47,220 --> 00:06:56,250
de imprimir guardamos cambios y ejecutamos y podemos ver que en este caso únicamente se están mostrando

70
00:06:56,250 --> 00:07:02,550
dos elementos el valor de 100 y 200 el valor repetido ya no se agrega debido a que estamos utilizando

71
00:07:02,580 --> 00:07:11,260
el tipo set y por último vamos a poner a prueba el tipo Map así que vamos a definir un mapa e indicamos

72
00:07:11,260 --> 00:07:15,710
que las colecciones que va a almacenar internamente van a ser de tipo String.

73
00:07:15,850 --> 00:07:25,370
Tanto la llave como los valores asociados la variable se va a llamar mi mapa y la clase concreta que

74
00:07:25,370 --> 00:07:27,020
vamos a utilizar es Cashman

75
00:07:29,810 --> 00:07:31,330
y vamos a empezar a agregar valores

76
00:07:34,410 --> 00:07:36,800
mi mapa y mandamos a llamar el método put.

77
00:07:37,740 --> 00:07:42,540
Y podemos observar también en este caso que estamos indicando que vamos a almacenar elementos de tipo

78
00:07:42,600 --> 00:07:49,110
string tanto para la llave como para el valor así que no podemos agregar otro tipo de dato debemos utilizar

79
00:07:49,110 --> 00:07:58,050
forzosamente el tipo string así que mandamos a llamar el método put y almacenamos los valores string.

80
00:07:58,250 --> 00:08:05,390
El valor de 1 y posteriormente el valor asociado a esta llave en este caso el valor de Juan

81
00:08:09,400 --> 00:08:10,810
agregamos otro valor.

82
00:08:10,810 --> 00:08:16,090
La llave con valor de 2 y el valor asociado el valor de Carla

83
00:08:21,020 --> 00:08:22,490
agregamos un tercer valor

84
00:08:27,770 --> 00:08:30,810
el cual es Carlos y con eso es suficiente.

85
00:08:30,830 --> 00:08:32,390
Vamos a esperar estos elementos

86
00:08:35,770 --> 00:08:41,320
recordemos que no podemos iterar directamente un mapa sino que debemos seleccionar cuál es el elemento

87
00:08:41,320 --> 00:08:47,740
que queremos iterar ya sea las llaves o los valores así que mandamos a llamar el método imprimir

88
00:08:50,600 --> 00:08:55,850
pero le pasamos únicamente las llaves guardamos cambios y ejecutamos

89
00:08:58,550 --> 00:09:04,070
y podemos llevar gaitera sin ningún problema las llaves y ahora vamos a iterar los valores

90
00:09:08,730 --> 00:09:16,750
mandamos a llamar el método valioso de nuestro mapa guardamos cambios y ejecutamos y podemos observar

91
00:09:16,750 --> 00:09:22,660
que se imprimen también correctamente cada uno de los valores y recordemos que si duplicamos una llave

92
00:09:28,420 --> 00:09:36,220
por ejemplo si repetimos la llave tres con el valor de Rosario entonces realmente lo que va a hacer

93
00:09:36,250 --> 00:09:41,860
es sobreescribir la llave en primer lugar tenemos el valor de Carlos pero como se vuelve a proporcionar

94
00:09:41,890 --> 00:09:46,900
un nuevo valor en este caso el último valor proporcionado es el valor de Rosario.

95
00:09:46,900 --> 00:09:54,490
Vamos a comprobar guardamos cambios y ejecutamos y podemos ver que únicamente tenemos tres elementos

96
00:09:55,820 --> 00:09:59,610
y el elemento 3 con la Llave 3 imprime el valor de Rosario.

97
00:09:59,830 --> 00:10:07,850
Si queremos imprimir de manera independiente este valor podemos hacer lo siguiente utilizando el mapa

98
00:10:08,710 --> 00:10:15,560
mandamos a llamar el método GET y en este caso si estamos indicando un tipo obvie proporcionamos el

99
00:10:15,560 --> 00:10:17,810
valor la llave que queremos recuperar.

100
00:10:17,810 --> 00:10:24,630
En este caso la Llave 3 y vamos a ver el valor que nos imprime guardamos cambios y ejecutamos y podemos

101
00:10:24,630 --> 00:10:31,350
observar el valor de Rosario bien así que con eso estamos probando correctamente nuestros tipos genéricos

102
00:10:31,710 --> 00:10:38,760
utilizando colecciones genéricas así que con este ejercicio hemos puesto en práctica el concepto de

103
00:10:38,760 --> 00:10:44,520
colecciones genéricas las cuales se crearon para que podamos indicar al compilador el tipo de dato que

104
00:10:44,520 --> 00:10:50,670
vamos a almacenar y de esta manera no haya errores posteriormente por agregar objetos o tipos que no

105
00:10:50,670 --> 00:10:54,810
pertenecen al tipo de la colección genérica que vamos a utilizar.

106
00:10:54,810 --> 00:11:00,120
Con esto ya no hay posibilidad de error únicamente podemos almacenar el tipo que estamos indicando en

107
00:11:00,120 --> 00:11:01,840
la colección genérica.

108
00:11:01,950 --> 00:11:07,680
De esta manera evitamos errores y también evitamos hacer conversiones al momento de obtener los elementos

109
00:11:07,830 --> 00:11:09,750
de nuestra colección.

110
00:11:09,810 --> 00:11:12,930
Eso es todo por selección y nos vemos en el siguiente vídeo.

111
00:11:12,930 --> 00:11:13,560
Saludos.
