• 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 }
    
    
  • 相关阅读:
    【mysql】添加对emoji的支持
    【mysql】关于innodb中MVCC的一些理解
    【mysql】关于硬件方面的一些优化
    关于php中的spl_autoload_register
    【mysql】高可用集群之MMM
    【mysql】数据库使用的一些规范
    使用sysbench进行压力测试
    【mysql】关于乐观锁
    【linux】spinlock 的实现
    【mysql】关于悲观锁
  • 原文地址:https://www.cnblogs.com/chenyuan7/p/8534382.html
Copyright © 2020-2023  润新知