哈希算法 和 map接口

一)Set接口:
     无序,不可重复(元素类型的equals方法比较)
     无序:与放入顺序不一致。
     比喻:List好比一个有格子顺序的盒子
       Set好比一个袋子。
  实现类:
     HashSet:底层是基于散列算法(哈希算法)来存储的数据结构
  
     treeSet:底层是基于有序的二叉树的数据结构
二)重写HashCode()和equals方法后的成立关系。
   hash值相同,equals不一定为true
   hash值不同,equals一定false.
   equals为true,hash值一定相同

   equals为false,hash值有可能一样

三)Map接口:存储数据是以key-value形式存储的。key相当于
  value的索引。作为key的对象类型必须重写hashCode方法。
     因为key也是唯一的,不能重复的。Map的key底层就是
   hashSet集合。
  Map接口提供的常用方法:
    put(K k,V v):作用是向Map对象中添加元素
    get(K k):作用是通过k获取对应的value值。
                          当Map中没有相应的k,那么返回的value就是null
       
        特点:key值可以为null.
  Map接口最常用的实现类:   HashMap


  四)为什么要重写HashCode()和equals()方法:
      因为Set集合要存储不能重复的元素,我们提供了Hash
      算法为每一个对象分配一个hash值,先根据hash值来判断
      集合中是否存有此hash值,如果存在,那么就应该通过
      equals算法来判断是否相同,不相同,就会存储在
      对应的链表中,增加了检索困难,所以,我们要让hash值

      相同的对象,内容也应该一样。

五)HashMap在存储数据时,如果再次存入相同的key时,会替换
     原来的key-value.
     Map<String,String> map = 
      new HashMap<String,String>();
     map.put("A","abc");
     map.put("B","bcd");

     map.put("A","fff");//会将原来的key-value替换掉


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42005432/article/details/79965548
个人分类: java基础
上一篇集合框架
下一篇异常
想对作者说点什么? 我来说一句

Java类集集合框架

2011年09月08日 1.07MB 下载

没有更多推荐了,返回首页

关闭
关闭