第十四届蓝桥杯集训——HashMap(无序)与TreeMap(有序)
HashMap
- HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
- HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
- HashMap 是无序的,即不会记录插入的顺序。
- HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
HashMap 的 key 与 value 类型可以相同也可以不同,可以是字符串(String)类型的 key 和 value,也可以是整型(Integer)的 key 和字符串(String)类型的 value。
包装类泛型约束
map也是支持泛型的,这个Key和Value泛型除了基本数据类型外还有【Number】、【Object】、
基本类型 | 引用类型 |
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
- E - Element (在集合中使用,因为集合中存放的是元素)
- T - Type(Java 类)
- K - Key(键)
- V - Value(值)
- N - Number(数值类型)
- ? - 表示不确定的 java 类型
HashMap无序操作
package com.item.action; import java.util.HashMap; import java.util.Set; public class Demo3 { public static void main(String[] args) { HashMap<String, Object> map = new HashMap<String, Object>(); // 添加键值对 map.put("admin", "管理员"); map.put("zhangsan", "张三"); map.put("lisi", "李四"); map.put("wangwu", "王五"); map.put("zhaoliu", "赵六"); System.out.println(map); // 修改 map.put("admin", "管理员的值被修改"); System.out.println(map); //删除 map.remove("zhangsan"); System.out.println(map); //根据key获取value System.out.println(map.get("zhangsan")); System.out.println(map.get("lisi")); //返回set Set<String> keySet = map.keySet(); System.out.println(keySet); //遍历 for (String s : keySet) { System.out.print(map.get(s)+","); } } }
显示效果:
TreeMap
TreeMap是序的key-value集合,内部是通过红-黑树实现的,支持序列化 。
TreeMap有序操作
package com.item.action; import java.util.Set; import java.util.TreeMap; public class Demo3 { public static void main(String[] args) { TreeMap<String, Object> map = new TreeMap<String, Object>(); // 添加键值对 map.put("admin", "管理员"); map.put("zhangsan", "张三"); map.put("lisi", "李四"); map.put("wangwu", "王五"); map.put("zhaoliu", "赵六"); System.out.println(map); // 修改 map.put("admin", "管理员的值被修改"); System.out.println(map); //删除 map.remove("zhangsan"); System.out.println(map); //根据key获取value System.out.println(map.get("zhangsan")); System.out.println(map.get("lisi")); //返回set Set<String> keySet = map.keySet(); System.out.println(keySet); //遍历 for (String s : keySet) { System.out.print(map.get(s)+","); } } }
输出效果: