java之Map集合

Map接口

1.含义:保存具有映射关系的数据,Map中保存着两组值(一组是key,一组是value)
2.和Collection是平行关系
3.里面存放的数据是键值对的形式<key,value>
4.key:Map中的键,不能重复,底层实现采用Set存储;value是Map中的值,可以重复,底层实现采用Collection(List)存储

Map实际上是提供了一个Entry内部类里封装key-value

5.优点:类似于字典一样,通过key找到对应的value,使用这种映射关系,方便查找数据。
6.常用方法
方法作用
Object put(Object key,Object value)添加或更新元素
Object remove(Object key)移除元素,删除一个key-value
void putAll(Map t)
void clear()清空元素
Object get(Object key)获取指定的value,如果没有找到对应的key则返回null
boolean containsKey(Object key)是否包含指定的Key
boolean containsValue(Object value)是否包含指定的value
int size()集合的长度
boolean isEmpty()是否为空
boolean equals(Object obj)
Set keySet()返回Map当中所有key组成的集合Set
Collection values()返回Map当中所有value组成的集合Collection
Set entrySet()返回Map中所有的键值对组成的Set集合(每个集合都是一个Entry对象)
7.Map遍历

一个键值对就是一个Entry,Entry是使用Set来存放,也是不可重复的
代码如下:

		// 遍历key-value
		//1.方法一
		Set set = map.keySet();
		for (Object obj : set) {
			Object key = obj;
			// 根据get()方法获得相应的value值
			Object value = map.get(key);
			System.out.println(key + "-"+ value);
		}
		//2.方法二
		Set entrySet = map.entrySet();
		for (Object object : entrySet) {
			Entry entry = (Entry)object;
			//通过entry调用getKey()方法得到key值
			Object key = entry.getKey();
			Object value = entry.getValue();
			System.out.println(key + "-" + value);
		}
		System.out.println("----------------------------");
		//3.方式三就是封装的方式二
		// 通过forEach()方法
		map.forEach((key,value) -> System.out.println(key+"-"+value));
8.实现类
实现类作用
HashMap主要实现类
LinkedHashMap使用链表的方式来添加Map元素的顺序,迭代顺序和插入顺序一致
TreeMap和前面学的TreeSet类似
Hashtable线程安全的,不建议使用,不允许使用null作为key,value(Properties:通常来处理属性文件,键值对都是String类型)

内部类Map.Entry

1.Map中包含了一个内部类Entry,它封装了一个键值对
2.当向Map中添加元素时,会调用key所在类的equals()方法,判断两个键是否相同,如果同,则被后者覆盖
2.常用方法

----getKey():获取Entry中包含的key值
----getValue():获取Entry中包含的value值

注意collection是接口,collections是j集合工具类
Collections工具类的几个应用:

		//1.reverse(List):翻转List集合中的元素
		Collections.reverse(list);
		System.out.println(list);
		//2.shuffle(List):对List集合进行随机排序(每次结果基本都不一样)
		Collections.shuffle(list);
		//3.sort(List):根据元素的自然顺序对指定集合按照升序排序
		Collections.sort(list);
		System.out.println(list);
		//4.swap(List,int,int):将指定集合中的索引为i的元素与j的元素交换
		Collections.swap(list, 1, 2);
		System.out.println(list);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值