El uso de map en java y el código fuente subyacente

java.util.Mapa;

mapa de interfaz pública<K,V>

Como novato Xiaobai, si tiene algún error en su comprensión de la clase Mapa, indíquelo activamente y acepte las críticas de los grandes. Después de todo, puede aprender más si conoce sus errores.

Parámetros de tipo:

K - el tipo de claves mantenidas por este mapa
V - el tipo de valores del mapa

Relaciones de mapeo:

Un objeto que asigna claves a valores. Un mapa no puede contener claves duplicadas; cada clave puede asignarse a un valor como máximo. En términos sencillos, el valor construido es único, pero el valor se puede repetir.

Su código subyacente:

En términos sencillos, Map es una interfaz ordinaria, y los métodos que contiene son implementados por diferentes clases.Por ejemplo, las dos clases más utilizadas son HashMap y HashTable, y una es segura para subprocesos.

1.

		public interface Map<K,V> 

La clase de colección declara los elementos del contenedor, aquí está el contenido de conocimiento de los genéricos de Java. Por supuesto, también está muy claro que se trata de una interfaz de mapa. De acuerdo con su parámetro de tipo, también se puede saber que K es el tipo de la clave y V es el valor de la clave.

2.

		 V get(Object key);

Es la clase Map que definió, para llamar a este método, le pasa un valor K y luego le devuelve V (Cadena), el tipo de V definido anteriormente al principio, si el Entero definido, tipo Cadena , luego expresado en código como:

		HashMap<Integer,String> hash=new HashMap<Integer,String>();
		hash.put(1, "1a");
		hash.put(2, "2b");
		hash.put(3, "3c");
		hash.put(4, "4d");
		System.out.println(hash.get(1));

3.

		V put(K key, V value);

Clase de implementación:

Entre sus clases de implementación, HashMap es una clase de implementación importante de Map, y también es la más utilizada, existen otras como TreeMap y Hashtable.

Implementación del método:

Map proporciona algunos métodos comunes, como keySet(), entrySet() y otros métodos.

Conjunto de teclas () y conjunto de entrada ()

El valor de retorno del método keySet() es una colección de valores clave en el Mapa;
el valor de retorno de entrySet() también devuelve una colección Set.
inserte la descripción de la imagen aquí
El resultado es:
inserte la descripción de la imagen aquí
la siguiente es la implementación del código específico, explíquelo.

public class Study_Map {
	static Book book1=new Book("1","java","zhongfucheng","好书",99);
	static Book book2=new Book("2","javaweb","hhhh","不好的书",44);
	static Book book3=new Book("3","ajax","xiaoming","一般般的书",23);
	static Book book4=new Book("4","spring","xiaohong","好书",56);
	private static Map<String ,Book> map=new LinkedHashMap<>();
	static {
		
		
	}
	
	public static Map<String ,Book>getAll(){
		map.put("1", book1);
		map.put("2", book2);
		map.put("3", book3);
		map.put("4", book4);
		return map;
		
	}
}

método principal vacío:

Hay algunos métodos de salida:

public static void main(String[] args) {
		// TODO 自动生成的方法存根
		
		
		Map<String,Book> map=getAll();
		
		System.out.println("----输出方式之一----");
		for (Map.Entry<String, Book> me : map.entrySet()) {
			//System.out.println(me);
			System.out.println(me.getKey());
			System.out.println(me.getValue());

		}
		
		
		System.out.println("----输出方式之二----");
		System.out.println(map);
		
		System.out.println("----输出方式之三----");
		Set<String> keySet=map.keySet();
		Iterator<String> iterator=keySet.iterator();
		while(iterator.hasNext()) {
			String key=iterator.next();
			Book book=map.get(key);
			System.out.println(key);
			System.out.println(book);
		}
		
		System.out.println("----输出方式之四----");
		Set<Map.Entry<String, Book>> set=map.entrySet();
		
		Iterator<Map.Entry<String, Book>> iter=set.iterator();
		while(iter.hasNext()) {
			Map.Entry<String, Book> entry=iter.next();
			System.out.println(entry.getKey());
			System.out.println(entry.getValue());
		}
		
		System.out.println("----输出方式之二----");
		*/
	}

:mapa.hashCode()

System.out.println(map.hashCode());


//稍作解释说明:哈希码代表了对象的一种特征,例如我们判断某两个字符串是否==,如果其哈希码相等,则这两个字符串是相等的

void putAll(Map<? extends K,? extends V> m)
Copia todas las asignaciones del mapa especificado a este mapa (operación opcional). En términos sencillos, es copiar todos los kvs de otro Mapa a otro Mapa.

Supongo que te gusta

Origin blog.csdn.net/guoguozgw/article/details/99647657
Recomendado
Clasificación