zoukankan      html  css  js  c++  java
  • 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 }
    
    
  • 相关阅读:
    13、字符串相互匹配删除
    12、指定长度替换制表符
    11、输入字符颠倒输出
    10、字符串输入删除末尾特殊符,清除空行
    9、筛选满足长度条件的输入内容进行输出
    8、获取输入的字符串并输出最长的那个
    7、初识函数
    6、计数垂直直方图输出
    5、计数水平直方图输出
    Tiny4412 Uboot
  • 原文地址:https://www.cnblogs.com/chenyuan7/p/8534382.html
Copyright © 2011-2022 走看看