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.
A saída do resultado é:
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.