Day-17

Map

1        Set

1.1        散列表

散列表 : 可以理解为数组保存元素是个链表

hashCode : hash算法,是把不定长的数据改变为定长的数据,是一种安全的加密算法,但不保证唯一

同一个对象生成多次hash值,那么值一定是相同的

不同对象也有可能生成相同的hash值

添加过程 : 

1 先调用添加的K,调用hashCode生成hash值
             2 根据hash值计算数组下标
             3 判断数组中该下标对应的位置上是否有元素
              3.1如果没有保存数据,就把该对象放到对应的下标中
              3.2如果保存了数据,此时调用添加的K的equals方法,和数组中该下标对应的所有数据的key进行比较
              3.3如果和数组下标对应的链表中的数据都不相等,就把该数据添加到对应的链表中
              3.4如果和链表中的数据一致了,则key不添加,把value值替换(用新的替换原来的)
              4 Java1.8改动,如果该链表中,节点个数大于7,则该链表被转换为红黑树

 

1.2        hashSet

 

 

2        Map

2.1        继承体系

 

2.2        map特性

Map : 无序 , key不可重复,value值可重复

 Map和Collection不一样,但是操作基本上是一样的

集合保存单个对象,而map保存键值对映射关系

2.3        常用方法

常用方法 : 
          put(K,V) : 添加数据
          remove(K) : 删除数据
          clear() : 清空
          size() : 个数
          isEmpty() : 判断是否为空
          get(K) : 根据Key获取value
          values() : 获取所有的value,返回集合
          containsKey(K) : 判断是否包含某个key
          containsValue(V) : 判断是否包含某个value
          Set keySet() : 获取map中所有的key,返回set
          Set entrySet() : 获取map中的键值对,返回set  

2.4        HashMap

map 不能直接遍历

将map转换为set,并把key和value封装到了entry类对象中,然后把entry类对象保存到set即可

getKey 是获取key,getValue是获取value 

2.5        Properties

Properties : key和value强制要求必须是字符串

2.6        TreeMap

 TreeMap : 保存的元素可以按照一定的规则进行排序
  排序 : 
 1 要添加的元素,实现了Comparable接口
 2 编写比较器类,实现Comparator接口
  treeMap 在添加的时候,会自动调用key对象的compareTo方法,使用key进行比较,而不是value 

2.7        面试题

Map转list并以value排序

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值