java Map

Map继承自Map接口,实现对“key-value”形式的键值对的存储,通过key来查询calue。其中key要求唯一。

Map的有三个实现类:HashMap、TreeMap、HashTable

Map的常用方法:

  • put(key,value) 往map中添加key/value的元素、若不存在key,则将数据添加到map中,并返回null,若已存在key,则将原先的value覆盖,并返回被覆盖的value

  • putAll(map) 将map中的所有元素添加到该map中

  • remove(key) 将map中键为key的元素删除,返回被删除的value

  • containskey(key) 判断map中是否包含key,返回类型为boolean类型,包含返回true,不包含返回false

  • containsValue(value) 判断map中是否包含指定的value值。返回类型为boolean类型

  • size() 获取map元素的个数

  • isEmpty() 判断map中的元素是否为空,返回类型为boolean类型

  • keySet() 返回此map中所有的key组成的set集合。

  • values() 返回此map中所有的value组成的Collection

 实现

以HashMap为例:HashMap<Object1,Object2> 对象名 = new HashMap<>();

等号右边的尖括号内在jdk1.7之后可以省略数据类型。Object1位key的数据类型,Object2为value'的数据类型

遍历

  1. 通过key的集合遍历
//通过keySet()获取map的key的集合,然后通过遍历key的集合来访问key对应的value
Set<Integer> set = map.keySet();
for(int num:set) {
	System.out.println(map.get(num));
}

    2.直接获取map中的value集

//values()方法返回Collection类型
Collection<String> set = map.values();
for(String str:set) {
	System.out.println(str);
}

HashMap与TreeMap的比较

  • HashMap基于哈希表的实现
    TreeMap基于红黑树实现
  • HashMap可以在构造方法中调优初始容量和负载因子,优化HashMap空间的使用
    TreeMap没有调优选项,因为概述总处于平衡状态
  • HashMap性能优于TreeMap

HashMap与HashTable的比较

  • HashTable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现
  • HashTable是线程安全的,也就是说同步的,而HashMap是线程不安全的,不同步的
  • HashMap允许将null作为一个entry的key或者value,而HashTable不允许使用null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值