第十四届蓝桥杯集训——HashMap(无序)与TreeMap(有序)
2023-02-25 18:17:13 时间
第十四届蓝桥杯集训——HashMap(无序)与TreeMap(有序)
目录
第十四届蓝桥杯集训——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)+",");
}
}
}
输出效果:
相关文章
- 到底什么是5G LAN?
- 希尔排序的简单理解
- 运营 - 我的闪存
- 一次简单的log4j漏洞测试
- 插入排序的简单理解
- 选择排序的简单理解
- 随笔 - 2022中秋节
- 冒泡排序的简单理解
- 视觉享受,兼顾人文观感和几何特征的字体「GitHub 热点速览 v.22.46」
- 昔日音乐播放器王者!WinAmp 5.9最终版发布:4年来一大突破
- 如何分析排序算法
- 越来越火的Serverless(无服务器计算),到底是个啥?
- 世界上第一根光纤,是谁造出来的?
- 算法的复杂度分析
- 拉线援
- 微服务架构 - 圈里的百科
- 一致性哈希的简单认识
- 《HelloGitHub》第 80 期
- 1度电标品!最快1.8小时充满 电小二户外电源1000Pro图赏
- B+ 树的简单认识