Colecciones: la clase
Una colección en Java es una estructura de datos que permite almacenar muchos
valores del mismo tipo; por tanto, conceptualmente es prácticamente igual que un
array
.Según el uso y según si se permiten o no repeticiones, Java dispone de un amplio
catálogo de colecciones:
ArrayList HashSet etc
Ordenación de un ArrayList
Los elementos de una lista se pueden ordenar con el método sort
El formato es elsiguiente:
Collections. sort(lista);
Observa que sort es un método de clase que está definido en Collections
Para poder utilizar este método es necesario incluir import [Link]
Para poder ordenar objetos y dado que un objeto tendrá varias propiedades, tenemos
que redefinir la clase
public class C l a s e i m p l e m e n t s Comparable<Clase>
public int compareTo(Clase g){
return( [Link]).compareTo([Link]());}
Diccionarios
Hashmap
¿Qué es Hashmap en Java?
Un HashMap básicamente designa claves únicas para los valores
correspondientes y recuperables en cualquier punto dado.
Esta estructura de datos también es conocida en otros lenguajes de programación como
"Diccionarios"
// Declaración de un Map (un HashMap) con clave "Integer" y Valor
"String".
Las claves pueden ser de cualquier tipo de objetos, aunque los más
utilizados como clave son los objetos predefinidos de Java como
String, Integer, Double .
los Map no permiten datos atómicos, usar envolventes
Map<Integer, String> nombreMap = new HashMap<Integer, String>();
[Link](); // Devuelve el numero de elementos del Map
[Link](); // Devuelve true si no hay elementos en el
Map y false si si los hay
[Link](K clave, V valor); // Añade un elemento al Map
[Link](K clave); // Devuelve el objeto que se pasa como
clave o 'null' si la clave no existe
[Link](); // Borra todos los componentes del Map
[Link](K clave); // Borra el par clave/valor de la clave
que se le pasa como parámetro
[Link](K clave); // Devuelve true si en el map hay
una clave que coincide con K
[Link](V valor); // Devuelve true si en el map
hay un Valor que coincide con V
[Link](); // Devuelve una "Collection" con los valores del
Map
Los métodos más usados y su función son:
Método Función
Devuelve el número de elementos
[Link]()
del Map.
Devuelve true si no hay
[Link]() elementos en el Map y false si sí
los hay.
[Link](K clave, V
Añade un elemento al Map.
valor)
Devuelve el valor de la clave que
[Link](K clave) se le pasa como parámetro o 'null'
si la clave no existe.
Borra todos los componentes del
[Link]();
Map.
Borra el par clave/valor de la
[Link](K clave) clave que se le pasa como
parámetro.
[Link](K Devuelve true si en el map hay
clave) una clave que coincide con K.
[Link](V Devuelve true si en el map hay un
valor) Valor que coincide con V.
Devuelve una "Collection" con
[Link]()
los valores del Map.
Características de Java Hashmap
a) Los valores se pueden almacenar en un mapa formando un par clave-
valor. El valor se puede recuperar usando la clave pasándola al método
correcto.
b) Si no existe ningún elemento en el Mapa, arrojará una ‘
NoSuchElementException’ .
c) HashMap almacena solo referencias de objetos . Por eso, es
imposible utilizar tipos de datos primitivos como double o int. Utilice la
clase wrapper (como Integer o Double) en su lugar.
Uso de HashMaps en programas Java:
Las siguientes son las dos formas de declarar un mapa hash:
HashMap <String, Object> map = new HashMap <String, Object> ();
HashMap x = new HashMap ();
Métodos importantes de Hashmap
•get (Object KEY) – Esto devolverá el valor asociado con una clave
especificada en este hashmap de Java.
•put (Object KEY, String VALUE) – Este método almacena el valor
especificado y lo asocia con la clave especificada en este mapa.
Ejemplo
package colecciones;
import [Link];
import [Link];
class pruebaMap {
public static void main(String[] args) {
HashMap <String, String> objMap = new HashMap <String, String> ();
[Link]("Nombre", "Suzuki");
[Link]("Potencia", "220");
[Link]("Tipo", "2-wheeler");
[Link]("Precio", "85000");
[Link]("Elementos del mapa:");
[Link](objMap);
}
}
otro ejemplo
import [Link].*;
clase pública HashMapExample {
public static void main(String args[]) {
// crear y poblar el hash map
[Link](1, "Java");
[Link](2, "Python");
[Link](3, "PHP");
[Link](4, "SQL");
[Link](5, "C ++");
[Link]("mapa:" + mapa);
// Eliminar el valor de la clave 5
[Link](5);
[Link](" después de Eliminar:" + mapa);
}
}
Permite hacer algunas consultas al propio Hash Map para conocerlo
mejor
encontrar si se le ha asignado una clave en particular?
usar el método containsKey (Object KEY) , devolverá un valor booleano si
tengo un valor para la clave dada.
encuentrar todas las claves disponibles que están presentes en el Mapa
con método keySet () que devolverá todas las claves en el mapa.
[Link] ([Link] ());
si necesita todos los valores solamente, tengo un método de values ().
[Link] ([Link] ());
eliminar solo una determinada clave del mapa.
remove (Object KEY) que eliminará solo ese par clave-valor en particular.
verificar si realmente contiene algunos pares clave-valor?
Recorrido de un map :
for (Entry<String, String> id :[Link]()) {
[Link]([Link]()+"-> "+[Link]()+" fin");
[Link]();
}
Para que funcione el Entry hay que poner import [Link];