Map接口&HashMap&Hash表简介

Map接口:

1.Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value

2.Map中的键值对以Entry类型的对象实例形式存在

3.键(key值)不可重复,value值可以

4.每个键最多只能映射到一个值

5.Map支持泛型,形式如:Map<K,V>

往Map中添加键值对的映射:put(K,V);    删除:remove(K);

通过以下三种方法会方便遍历Map中的元素:

返回key值的集合:keySet();

返回value值的集合:values();

返回键值对的集合:entrySet();

HashMap类:

1.HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现

2.HashMap中的Entry对象是无序排列的

3.key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key值不可重复)

Hash表是一种数据结构,在这种数据结构里所有的东西是以一对值放进去的,一个叫做key,就是键,一个叫做value,叫做值,放在Hash表里的东西都是由一个key和一个value放进去的

Hash表一个容器,在Hash表里所有类型必须是一个对象,而不能是基本元素,int,float,double都不行,String可以,Integer可以(Integer是int的包裹类)

put(1 , " penny " ) ;       //第一个位置直接写数字(因为一个包裹类型的变量可以直接接收它所对应的基础类型的变量)

例:

 1 package hashjihe;
 2 
 3 import java.util.HashMap;
 4 import java.util.Scanner;
 5 
 6 public class Coin{
 7   private HashMap<Integer,String> coinnames = new HashMap<Integer,String>();
 8   public Coin(){
 9     coinnames.put(1,"penny");
10     coinnames.put(10,"dime");
11     coinnames.put(23,"quarter");
12     //对于Hash表来说,键一定是唯一的,如果同一个键放进多次,那么输出的都是最后那一个
13     coinnames.put(50,"half-dalar");
14     coinnames.put(50,"五毛");
15     coinnames.put(50,"毛五");
16     System.out.println(coinnames.keySet().size());  //4
17     System.out.println(coinnames);  //{1=penny, 50=毛五, 25=quarter, 10=dime}
18     System.out.println("===========");
19     //遍历
20     for(Integer k:coinnames.keySet()){
21       System.out.println(coinnames.get(k));  //penny  毛五  quarter  dime(按照ASCII码的排列顺序)
22     }
23   }
24 
25   public String getName(int amount){
26     if(coinnames.containKey(amount)){  //containsKey():如果此映射包含对于指定键的映射关系,则返回true
27       return coinnames.get(amount);
28     }else{
29       return "Not Found";
30     }
31   }
32 
33   public static void main( String[] args ){
34     Scanner sc = new Scanner( System.in );
35     System.out.println("输出一个数:");  //输入了数字50
36     int a = sc.nextInt();
37     Coin c = new Coin();
38     System.out.println(c.getName(a));  //毛五
39   }
40 }

原文地址:https://www.cnblogs.com/chenyuan7/p/8534382.html