Colecciones
Colecciones
Colecciones
|unDiccionario|
unDiccionario := Dictionary new.
unDiccionario add: (Association key: '45841122' value: 'Rodriguez, Manuel').
unDiccionario removeKey: '45841122'
●
Diccionarios (Dictionary)
● at: unaClave. El mensaje at: devuelve el valor asociado con el argumento
unaClave. Si unaClave no existe en el diccionario se visualizará la ventana
de depuración. ejemplo:
|unDiccionario|
unDiccionario := Dictionary new.
unDiccionario add: (Association key:'45841122' value:'Rodriguez, Manuel').
unDiccionario at:'45841122'
● keyAtValue: unValor. El mensaje keyAtValue: devuelve la clave del primer
valor que encuentra que es igual al argumento unValor. Si el argumento
unValor no se encuentra en el diccionario, se visualizará la ventana de
depuración. ejemplo:
|unDiccionario|
unDiccionario := Dictionary new.
unDiccionario add: (Association key:'45841122' value:'Manuel').
unDiccionario keyAtValue:'Manuel'
Diccionarios (Dictionary)
● at:unaClave put:unValor. El mensaje at: put: encuentra el argumento
unaClave en el diccionario y reemplaza su valor por el argumento unValor. Si la
clave no se encuentra, entonces se agrega al diccionario. Este mensaje puede
ser utilizado en lugar del mensaje add: para agregar una nueva asociación al
diccionario. Este mensaje devuelve unValor. Pruebe el siguiente ejemplo:
|unDiccionario|
unDiccionario := Dictionary new.
unDiccionario add: (Association key:'45841122' value:'Manuel').
unDiccionario at:'45841122' put:'Felipe'.
unDiccionario at:'45820022' put:'Tía Claudia'.
UnDiccionario
● Note que el valor para la clave '45841122' ha sido modificado y una nueva
asociación con la clave '45820022' y el valor 'Tía Claudia' ha sido agregado.
●
Diccionarios (Dictionary)
● do: unBloque. El mensaje do: realiza iteraciones a través de todos los
elementos del diccionario, ejecutando un bloque de código de un sólo
argumento especificado por el argumento unBloque, el argumento de dicho
bloque se corresponde con los valores de cada asociación. Ejemplo:
|unDiccionario unaColeccion|
unDiccionario := Dictionary new.
unaColeccion := OrderedCollection new.
unDiccionario at:'45841122' put:'Manuel'.
unDiccionario at:'45820022' put:'Tía Claudia'.
unDiccionario do:[:nombre |unaColeccion add:'Nombre = ',nombre].
^unaColeccion
● Este ejemplo devuelve una Colección Organizada donde cada elemento apunta
a un objeto String con el nombre de la persona precedido por la cadena
'Nombre = '.
Diccionarios (Dictionary)
● keysDo: unBloque. El mensaje keysDo: realiza iteraciones a través de todos
los elementos del diccionario, ejecutando un bloque de código de un sólo
argumento especificado por el argumento unBloque, donde cada agumento de
dicho bloque se corresponde con la clave de cada asociación. Ejemplo:
|unDiccionario unaColeccion|
unDiccionario := Dictionary new.
unaColeccion := OrderedCollection new.
unDiccionario at:'45841122' put:'Manuel'.
unDiccionario at:'45820022' put:'Tía Claudia'.
unDiccionario keysDo:[:tel |unaColeccion add:'Teléfono = ',tel].
^unaColeccion
● Este ejemplo crea una Colección Ordenada con cada elemento apuntando a un
objeto String con el teléfono precedido por la cadena 'Teléfono = '.
●
Diccionarios (Dictionary)
● Keys. El mensaje keys devuelve un conjunto con todas las claves del diccionario. Ejemplo:
|unDiccionario|
unDiccionario := Dictionary new.
unaColeccion := OrderedCollection new.
unDiccionario at:'45841122' put:'Manuel'.
unDiccionario at:'45820022' put:'Tía Claudia'.
unDiccionario keys
● Values. El mensaje values devuelve una instancia de la clase Bag con todos los valores del
diccionario. Ejemplo:
|unDiccionario|
unDiccionario := Dictionary new.
unaColeccion := OrderedCollection new.
unDiccionario at:'45841122' put:'Manuel'.
unDiccionario at:'45820022' put:'Tía Claudia'.
unDiccionario values
● Nota: ¿Por qué el diccionario devuelve las claves en un Conjunto y los valores en una Bolsa?
Un Conjunto no permite dupclicados, mientras que una Bolsa sí lo hace. Un objeto Dictionary no
puede tener claves duplicadas, entonces un Conjunto es una buena elección. Pero como un
objeto Dictionary puede tener valores duplicados, se colocan en una Bolsa.
Resumen
● Las Colecciones manejan un grupo de objetos.
● Una Bag (Bolsa) es una colección de tamaño variable, que guarda objetos
en un orden al azar y que no es indexable.
● Un Set (Conjunto) es idéntica a una Bolsa excepto en que no permite
objetos duplicados.
● Un Array (Vector o Arreglo) es una colección de tamaño fijo que es
indexable.
● Una OrderedCollection (Colección Organizada) es una colección de
tamaño variable que es indexable.
● Una SortedCollection (Colección Ordenada) es una colección de tamaño
variable que guarda objetos en un orden específico por medio de un
bloque de ordenamiento de dos argumentos.
● Una LinkedList, es una colección que almacena enlaces a objetos.
Resumen
● Las Colecciones tienen varios mensajes que soportan la
administración de una colección. Esto incluye crear nuevas (new)
colecciones, preguntar por el tamaño (size) de una colección,
agregar (add) objetos a una colección, eliminar (remove) ítems de
una colección, e iterar (do) a través de una colección.
● Un String (cadena) es similar a un arreglo excepto en que sólo
contiene caracteres.
● Un Symbol (Símbolo) es similar a una cadena excepto en que no
permite objetos Symbol duplicados con el mismo valor.
● Un diccionario administra pares clave/valor. Un diccionario tiene
varios mensajes que soportan la administración de un diccionario.