简介: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文档