Map集合的常用知识点总结

说完Collections的单列集合,接下来介绍Map双列集合
java.util.Map<k,v>
Map集合的特点
1.Map集合是一个双列集合,一个元素包含一个键值对(一个Key,一个Value)
2.Map集合中的key和value的数据类型可以相同,也可以不相同
3.key不允许重复,value可以重复
4,key和value是一一对应的关系

而Map接口中三个常用的实现类就是HashMap,LinkedHashMap和Hashtable

Map接口中的常用方法
1.public v put (K key,V value)把指定的键值对添加到Map集合中。如果key值重复了,则返回之前的重复的value,新的value会替换掉旧的。如果key值不重复,则返回null
2.public v remove(Object key)把指定的键所对应的值删除,如果存在则返回该value,如果不存在则返回null
3.public v get(Object key)获取指定的键所对应的值,如果存在则返回该value,如果不存在则返回null
4.boolean containsKey(Object key)判断集合中是否包含该key值

Map集合遍历的方法有两种
1.遍历键找值
1.1通过Map集合的keySet()方法把集合中所有的key值取出来,并存储到一个set集合中
1.2通过迭代器/for增强把Set集合遍历输出,并通过get(key)的方法把Map集合中value值给输出出来

2.Entry输出键值对对象
在Map接口中有一个内部接口Entry。当Map集合创建的时候,就会在Map集合中创建一个Entry对象(类似于内部类),用来记录键值对的映射关系

操作步骤
1.使用Map集合中的方法entrySet把Map集合中多个Entry对象取出来,存储到一个Set集合中
2.遍历Set集合,获取每一个Entry对象
3.使用Entry对象中的方法getKey()和getValue()获取键和值

public class Demo01 {
	public static void main(String[] args) {
		//创建Map集合,并放入一系列的键值对
		Map<Integer, String> map=new HashMap<>();
		map.put(1, "a");
		map.put(2, "b");
		map.put(3, "c");
		
		//使用entrySet()方法
		Set<Map.Entry<Integer, String>> set=map.entrySet();
		//Set集合的泛型就是Entry接口的对象,通过外部接口Map调用内部接口Entry
		
		//创建迭代器,遍历Set集合
		Iterator<Map.Entry<Integer, String>> iterator=set.iterator();
		while(iterator.hasNext()){
			//获取每一个Entry对象
			Map.Entry<Integer, String> entry=iterator.next();
			//使用Entry对象中的方法
			Integer key=entry.getKey();
			String value=entry.getValue();
			System.out.println(key+"="+value);
			/*
			 * 1=a
			   2=b
			   3=c
			 */
		}
	}
}

HashMap集合
底层是一个哈希表,是一个线程不安全的集合,是多线程的集合
HashMap可以存储null值,null键

LinkedHashMap集合
底层原理 哈希表+链表

Hashtable集合
底层也是一个哈希表,是一个线程安全的集合,单线程,速度慢
Hashtable不可以存储null值,null键
Hashtable的子类Properties集合是唯一与IO流结合的集合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值