集合操作-Map

Map接口

  • Map接口定义的集合又称查找表,用于存储所谓"Key- Value" 映射对。Key可以看成是Value的索引,作为Key的对象在集合中不可以重复。
  • 根据内部数据结构的不同, Map接有多种实现类,其中常用的有内部为hash表实现的HashMap和内部为排序二叉树实现的TreeMap。

put()方法

  • Map接口定义了向Map中存放元素的put方法:
    – V put( K key,V value)
  • 将Key-Value对存入Map,如果在集合中已经包含Key,则操作将替换该Key所对应的Value,返回值为该key原来所对应的value(如果没有返回null)
案例

在这里插入图片描述

get()方法

  • Map接口中定义了从Map中获取元素的get方法:
    – V get (Object key)
  • 返回参数key所对应的value对象,如果不存在返回null
案例

在这里插入图片描述

containsKey()方法

  • Map接口中定义了判断某个key是否在Map中存在:
    – boolean containsKey(Object key);
    若Map中包含给定的key则返回terue,否则返回false
案例

在这里插入图片描述

HashMap

Hash表原理

在这里插入图片描述

hashCode方法

  • 从HashMap的原理中我们可以看到, key的hashCode()方法的返回值对HashMap存储元素时会起着很重要的作用。而hashCode(方法实际 上是在Object中定义的。那么应当妥善重写该方法:
  • 对于重写了equals方法的对象一般要妥善的重写继承自Object类的hashCode方法( Object提供的hashCode方法将返回该对象所在内存地址的整数形式)。
  • 重写hashCode方法是需注意两点:其一、与equals方法的一致性,即equals比较返回true的两个对象其hashCode方法返回值应该相同;其二、hashCode返回的数值应符合hash算法的要求,试想如果有很多对象的hashCode方法返回值都相同,则会大大降低hash表的效率,一般情况下可以使用IDE (如Eclipse )提供的工具自动生成hashCode方法。
重写hashCode方法

在这里插入图片描述

Map的遍历

使用keyset方法

  • Map提供了三种遍历方式:
    – 遍历所有的key
    – 遍历所有的key-value对
    – 遍历所有的value(不常用)
  • 遍历所有key的方法:
    – Set keySet();
    – 该方法会将当前Map中所有的key存入一个Set集合后返回
案例

在这里插入图片描述

使用entryset()方法

  • 遍历所有的键值对的方法:
    – Set <Entry<K,V>> entrySet()
    – 该方法会将当前Map中每一组key-value对封装为一个Entry对象并存入一个Set集合后返回
案例

在这里插入图片描述

使用values()方法

  • 遍历所有的Value
    – Collection values();
案例
Collection<Integer> values=map.values();
		for(Integer i:values) {
			System.out.println("value:"+i);
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值