集合框架Map

集合框架Map


简介:Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到其对应的值。

Map

1.增加
put(K key, V value)
putAll(Map<? extends K,? extends V> m)
2、删除
clear()
remove(Object key)
3、判断
containsKey(Object key)
containsValue(Object value)
isEmpty()
4、获取
get(Object key)
size()
values()
entrySet()
keySet()

关于map的使用,包含了一些简单的方法以及注意的事项

public class MapDemo {
	public static void main(String[] args) {
		HashMap<String , Object> map = new HashMap<>();
		/**
		 * 初识map
		 * 	在集合中允许嵌套
		 * 	map集合key不能重复
		 * 	
		 * put
		 * 		1.添加集合元素的同时他可以编辑原有的元素
		 * 		如果说集合中没有key对应的value那么就往集合中添加元素
		 * 		如果说集合中对应的key有value值,则代表替换原有的值
		 * 
		 * 		2.返回替换前的key对应的value值
		 * entrySet:性能更好
		 * keySet
		 * 
		 * @author MRCHENIKE
		 *
		 */
		//键值对
		map.put("ads", 12);
		map.put("aa", 13);
		map.put("ab", 14);
		map.put("ac", 15);
		map.put("ad", 16);
		map.put("ads", 12);
		
		Object put = map.put("ads", "*");
		//需要用到身份证号做其他表的查询
		System.out.println(put);
		
		System.out.println(map);
		
		
		
		Set<Entry<String, Object>> entrySet = map.entrySet();
		for (Entry<String, Object> entry : entrySet) {
			System.out.println(entry.getKey()+ "==="+entry.getValue());
		}
		
		System.out.println("=====================");
		
		Set<String> keySet = map.keySet();
		for (String key : keySet) {
			System.out.println(key+ "==="  +map.get(key));
		}
	}
}

Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合石线程同步的,jdk1.0,效率低HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的。将Hashtable替代;jdk1.2,效率高
TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序
注意:添加元素时,如果键已经在集合中存在,那么后添加的值会覆盖原来的值,并且put方法会将原有的值返回

HashMap

关于HashMap的应用
应用1
1、将学生作为键,地址作为值进行存储,名字年龄相同则被认定为一个人,最后输出
2、最后按年龄进行排序
3、需求改变、按姓名进行排序

统计功能

  • 1.将字符串转为字符数组 ,将这个字符串中方的字符当成map集合中的key将出现的次数作为value值
  • 2.当字符第一次出现的时候。name用他在集合中进行寻找,返回值必然为null,
  • 之后将该字符对应的值改为1
  • 3.如果说改字符不是第一次出现,改字符对应的值不为null,然后应该+1
  • 在这里插入图片描述在这里插入图片描述
    输出结果后
    在这里插入图片描述
    map集合中的泛型要使用包装类或者是引用数据类型

TreeMap

关于TreeMap的应用
统计字符串中字符出现次数,按次数进行排序排序
TreeMap默认按key进行升序排序,如果想改变默认的顺序,可以使用比较器:

在这里插入图片描述
在这里插入图片描述
输出结果后为
在这里插入图片描述
关于map的一些使用方法
jdk文档
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值