1. 双列集合
双列集合也是用于存储数据的,但是与单列集合不同的是,双列集合是以key=value
的形式存在的。每个部分包含两部分key和value。
2. 特点
- Map键是无序、不可重复和无索引的。
- Map值是不做要求的。
- Map存相同键的值,后者会覆盖前者
- Map的键和值都可以是null
文章图片
- HashMap:键无序、不重复和无索引,值不做要求。(哈希表加值元素)
- LinkedHashMap:键有序、不重复和无索引,值不做要求。(哈希表加双向链表)
- TreeMap:键按照规则排序、不重复和无索引,值不做要求。(红黑树)
方法名称 | 说明 |
---|---|
V put(K key,V value) | 添加元素 |
V remove(Object key) | 根据键删除键值对元素 |
void clear() | 移除所有的键值对元素 |
boolean containsKey(Object key) | 判断集合是否包含指定的键 |
boolean containsValue(Object value) | 判断集合是否包含指定的值 |
boolean isEmpty() | 判断集合是否为空 |
int size() | 集合的长度,也就是集合中键值对的个数 |
HashMap<键类型, 值类型> 变量名 = new HashMap<>()
6. Map集合遍历 6.1 键找值的方法 选获得Map的键,然后通过键获得对应的值。
public class HashMapTest1 {
public static void main(String[] args) {
HashMap hashMap = new HashMap<>();
hashMap.put(1, "张三");
hashMap.put(2, "李四");
hashMap.put(3, "王二");
Set integers = hashMap.keySet();
for (Integer integer : integers) {
System.out.println("{key=" + integer + ", value="https://www.it610.com/article/+ hashMap.get(integer) +"}");
}
}
}
6.2 迭代器方式 把键值对看成一个对象,获得这个对象集合进行遍历
public class HashMapTest2 {
public static void main(String[] args) {
HashMap hashMap = new HashMap<>();
hashMap.put(1, "张三");
hashMap.put(2, "李四");
hashMap.put(3, "王二");
Set> entries = hashMap.entrySet();
for (Map.Entry entry : entries) {
System.out.println("{key=" + entry.getKey() + ", value="https://www.it610.com/article/+ entry.getValue() +"}");
}
}
}
6.3 Lambda表达式
public class HashMapTest3 {
public static void main(String[] args) {
HashMap hashMap = new HashMap<>();
hashMap.put(1, "张三");
hashMap.put(2, "李四");
hashMap.put(3, "王二");
// 传统匿名内部类
hashMap.forEach(new BiConsumer() {
@Override
public void accept(Integer integer, String s) {
System.out.println("{key=" + integer + ", value="https://www.it610.com/article/+ s +"}");
}
});
// Lambda表达式
hashMap.forEach((i, s) -> System.out.println("{key=" + i + ", value="https://www.it610.com/article/+ s +"}"));
}
}
本章结束,用于个人学习和小白入门,大佬勿喷!希望大家多多点赞收藏支撑支撑!
【【Java基础14】双列集合Map】源码 【GitHub】 【码云】
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)