java集合框架之Map------04_01 Map

Map用于保存具有映射关系的数据,所以Map中保存的为key-value的对,称为键值对,key和value可以为任何的数据类型的数据。
key和value有一对一的关系, key不允许有重复,value可以重复。所以所有的key可以看做一个set集合,所有的value又好像是一个list。

Map中常见的方法:
    clear() 清除Map中所有的key-value对。
    containKey(Object key) 查询是否包含指定的key
    containValue(Object value)  查询是否是否包含一个或者多个value的键值对
    get(Object key) 返回指定key对应的value,如果不包含返回value
    values() 返回该map中所有的value组成的Collection。
    keySet()返回这个Map所有key组成的set集合。
    put(Object key, Object value) 添加一个key-value对到map中。 当向Set中添加重复的元素时,Set会添加失败,但是向Map中添加可key已经存在的键值对,新的key-value会覆盖原来的key-value对。
    putAll(Map) 将指定的map复制到这个map中
    remove(Object key)删除指定key对应的key-value对。 如果不存在,返回null。
示例1:
public class MapDemo_01 {
    public static void main(String[] args){
        Map hm = new HashMap();
        System.out.println(hm.put("zhang", 123));
        System.out.println(hm.put("zhang", 234));        
    }
}  

输出:
null
123 
分析: 如果map中不存在 这个key相关的value,那么put就返回null,表示没有覆盖任何元素
如果map中存在 这个key相关的value,此时由于put方法要将这个重复的key-value进行覆盖来保证key的唯一性,所以, put方法返回被覆盖的这个key-value的value。  

在Map中,有一个方法:Set entrySet()用来返回Map包含的所有的key-value对组成的set集合,每一个集合元素都是Map.Entry的对象。
Map中有一个内部类Entry,这个类封装了一个key-value对,Entry有三个方法。
getKey() 返回Entry里包含的key值
getValue()返回Entry里包含value值

setValue(V value) 设置该Entry里包含的value值,返回新设置的value值。

其他方法的测试小例子如下:
public class MapDemo_02 {
    public static void main(String[] args){
        Map hm = new HashMap();
        System.out.println(hm.put("zhang", 123));
        System.out.println(hm.put("wang", 234));
        
        System.out.println("获取Map的key集合"+hm.keySet());
        System.out.println("获取Map的value集合"+hm.values());
        System.out.println(hm);
        System.out.println(hm.remove("li"));
        System.out.println(hm.remove("wang"));
        
    }
}  
输出结果为:
null
null
获取Map的key集合[zhang, wang]
获取Map的value集合[123, 234]
{zhang=123, wang=234}
null
234


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值