//creamos el mapa
Map<String, Usuario> mapa = new HashMap<>();
//agregamos elementos al mapa
mapa.put("Luiggi Mendoza J", new Usuario(227, "Luiggi Mendoza J", 10.4k));
mapa.put("theboshy", new Usuario(9206, "theboshy", 1));
System.out.println(mapa.get("theboshy")); //imprime datos de usuario
System.out.println(mapa.get("elporfirio")); //imprime nulo
//recorrer todas las entradas llave-valor del mapa
//e imprimir la llave y el valor correspondiente
for (Map.Entry<String, Usuario> entry : mapa.entrySet()) {
System.out.printf(
"Llave: %s. Valor: %s\n",
entry.getKey(), entry.getValue());
}
一个键只能有 1 个值。这并不意味着可以有 1 个值与多个 Key 关联。例子:
Map<String, String> mapa = new HashMap<>();
mapa.put("saludo", "hola mundo");
System.out.println(mapa.get("saludo")); //imprime 'hola mundo'
String valor = "aloha!";
//reemplazamos el valor de la llave "saludo"
mapa.put("saludo", valor);
System.out.println(mapa.get("saludo")); //imprime 'aloha!'
//asignamos el mismo valor a una nueva llave
mapa.put("saludo efusivo", valor);
System.out.println(mapa.get("saludo"));
System.out.println(mapa.get("saludo efusivo"));
//ambas sentencias imprimieros 'aloha!'
Set<Integer> set = new HashSet<>();
//agregamos elementos
set.add(10);
set.add(5);
set.add(8);
//podemos remover elementos
set.remove(10);
//pero no podemos obtener elementos, no existe un método `get`
//lo que si, existe un método `contains` que permite verificar
//si un elemento existe en el set
if (set.contains(5)) {
System.out.println("5 existe");
}
//sin embargo, se pueden recorrer todos los elementos de un set
for (Integer elem : set) {
System.out.println(elem);
}
不同之处在于为这些接口中的每一个定义的功能:
Map
是一个接口,它定义了以 Key(或 Key)Value 类型对存储对象,您可以在其中注册、获取和删除 Key 中的元素。例子:
一个键只能有 1 个值。这并不意味着可以有 1 个值与多个 Key 关联。例子:
Set
是一个定义存储对象的接口,就好像它是一个数学集合一样。这允许从这个集合中注册和移除元素,但不允许一个一个地获取它们。Set
它主要用于检查集合中是否没有重复的对象。例子:
需要注意的是,a
Set
可以简单地看作 aMap<Object, Boolean>
,其中要插入的对象Set
是 的键Map
。这可以通过使用方法来检查Collections#newSetFromMap(Map<E, Boolean>)
。