HashMap散列映射表

   当要储存成对元素时,就要用到可以存放键值对(Key , Value)的Map了

  1.Map 中只可以存放键值对(Key , Value),其中Key是不可以重复的,Key和Value是一一对应。

  2.HashMap是Map 接口的实现类,即是用hash的算法实现的Map.HashMap 是非线程安全的容器,轻量级,允许空的键值对。Key 是无序的存放且不可以重复的,他也是通过Hash码值来保证Key不重复的,如果要加入的键值对和HashMap中键值对的Key是相同的,就会将这个集合中的Key所对应的value值覆盖。在使用自定义类型作为Key时,要覆盖hashCode和equals方法,处理方法与HashSet相同

  3.HashMap 底层也是数组,HashSet底层其实就是HashMap,只不过是只用Key值没有Value的HashMap.

  4.改变操作:添加-删除键值对:put(key ,value)  方法在此映射中关联指定值和指定键

                                                           remove(key)    方法在此映射中移除指定键的映射关系

                                                           clear()        方法在此映射中移除所有映射关系

  5.查询操作:get(key) 方法返回指定键所映射的值,如果此键不包含任何映射关系,则返回null

                         size()方法返回此映射的关系数

  6.可以把键或者值的组作为集合来处理,KeySet()方法返回此映射中所包含的键的Set视图;values()方法返回此映射所包含的值的Collection视图,在遍历Map时,用使用其KeySet()方法获得Key的一个set集合,可以通过get()方法获得Key所对应的Value.

  7.在Map中如果经常删除,插入,定位元素,最好使用HashMap,如果按顺序遍历最好用TreeMap.---有序键的遍历

package ch7;

import java.util.*;

public class TestHashMap
{
      public static void main(String args[])
      {
    	  HashMap <String ,String >map = new HashMap<String ,String>();//构造一个默认初始容量16和默认加载因子0.75的空HashMap
    	  //向map中添加键值对,put(K key,V value),在此映射中关联指定值和指定键
    	  map.put("zhangsan","Java");
    	  map.put("lisi","C++");
    	  map.put("wangwu","C#");
    	  map.put("yaoming","C++");
    	  Set<String> set = map.keySet();//返回此映射中所包含的键的Set视图
    	  Iterator <String> it = set.iterator();
    	  Collection <String> set1 = map.values();//返回此映射所包含的值的Collection视图
    	  Iterator <String> it1 = set1.iterator();
    	  while(it1.hasNext())
    	  {
    		  String item1 = it1.next();
    		  String keys = map.get(item1);
    		  System.out.println(item1+"考试"+keys+"通过了");
    	  }
    	  while(it.hasNext())
    	  {
    		  String key = it.next();
    		  String item = map.get(key);//返回指定键所映射的值;如果该键不包含任何映射关系,返回null
    		  System.out.println(key+"同学通过了"+item+"考试");
    	  }
    	  String key1 = "yaoming";
    	  if(map.containsKey(key1))
    	  {
    		  System.out.println("恭喜"+key1+"同学通过了"+map.get(key1));
    	  }
    	  else
    	  {
    		  System.out.println("很可惜"+key1+"没有通过考试!");
    	  }
    	  String value = "C++";
    	  if(map.containsValue(value))
    	  {
    		  System.out.println(value + "考试还是太简单了,竟然有人通过了考试");
    	  }
    	  else
    	  {
    		  System.out.println("竟没有人通过此考试!!!!");
    	  }
    	  String key2 = "zhangsan";
    	  map.remove(key2);
    	  System.out.println(key2+"作弊,取消考试成绩!!!");
      }
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值