O uso de mapa em java e o código-fonte subjacente

java.util.Map;

mapa de interface pública<K,V>

Como um novato Xiaobai, se você tiver algum erro em sua compreensão da classe Map, aponte-o ativamente e aceite as críticas dos grandes. Afinal, você pode aprender mais se conhecer seus erros.

Parâmetros de tipo:

K - o tipo de chaves mantidas por este mapa
V - o tipo de valores do mapa

Relações de mapeamento:

Um objeto mapeando chaves para valores. Um mapa não pode conter chaves duplicadas; cada chave pode mapear para no máximo um valor. Em termos leigos, o valor construído é único, mas o valor pode ser repetido.

Seu código subjacente:

Em termos leigos, Map é uma interface comum e os métodos nela são implementados por diferentes classes. Por exemplo, as duas classes mais usadas são HashMap e HashTable, e uma é thread-safe.

1.

		public interface Map<K,V> 

A classe de coleção declara os elementos do contêiner, aqui está o conteúdo de conhecimento dos genéricos do java. Claro, também está muito claro que esta é uma interface de mapa. De acordo com seu parâmetro de tipo, também pode ser conhecido que K é o tipo da chave e V é o valor da chave.

2.

		 V get(Object key);

É a classe Map que você definiu, para chamar esse método, você passa um valor K nele, e depois ele retorna para você V (String), o tipo de V definido acima no início, se for o Integer definido, tipo String , então expresso em 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);

Classe de implementação:

Dentre suas classes de implementação, HashMap é uma importante classe de implementação de Map, sendo também a mais utilizada, existindo outras como TreeMap e Hashtable.

Implementação do método:

Map fornece alguns métodos comuns, como keySet(), entrySet() e outros métodos.

KeySet() e entrySet()

O valor de retorno do método keySet() é uma coleção de valores-chave no Map;
o valor de retorno de entrySet() também retorna uma coleção Set.
insira a descrição da imagem aqui
A saída do resultado é:
insira a descrição da imagem aqui
o seguinte é a implementação do código específico, explique-o.

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;
		
	}
}

void método principal:

Existem alguns métodos de saída:

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("----输出方式之二----");
		*/
	}

:map.hashCode()

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


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

void putAll(Map<? extends K,? extends V> m)
Copia todos os mapeamentos do mapa especificado para este mapa (operação opcional). Em termos leigos, é copiar todos os kvs de outro mapa para outro mapa.

Acho que você gosta

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