网站首页 > java教程 正文
目录
- 1. 双列集合
 - 2. 特点
 - 3. 双列集合体系
 - 4. 常用API
 - 5. 格式
 - 6. Map集合遍历
 - 6.1 键找值的方法
 - 6.2 迭代器方式
 - 6.3 Lambda表达式
 

1. 双列集合
双列集合也是用于存储数据的,但是与单列集合不同的是,双列集合是以key=value
的形式存在的。每个部分包含两部分key和value。
2. 特点
- Map键是无序、不可重复和无索引的。
 - Map值是不做要求的。
 - Map存相同键的值,后者会覆盖前者
 - Map的键和值都可以是null
 
3. 双列集合体系
- HashMap:键无序、不重复和无索引,值不做要求。(哈希表加值元素)
 - LinkedHashMap:键有序、不重复和无索引,值不做要求。(哈希表加双向链表)
 - TreeMap:键按照规则排序、不重复和无索引,值不做要求。(红黑树)
 
4. 常用API
Map常用API:
方法名称  | 说明  | 
V put(K key,V value)  | 添加元素  | 
V remove(Object key)  | 根据键删除键值对元素  | 
void clear()  | 移除所有的键值对元素  | 
boolean containsKey(Object key)  | 判断集合是否包含指定的键  | 
boolean containsValue(Object value)  | 判断集合是否包含指定的值  | 
boolean isEmpty()  | 判断集合是否为空  | 
int size()  | 集合的长度,也就是集合中键值对的个数  | 
5. 格式
HashMap<键类型, 值类型> 变量名 = new HashMap<>()
6. Map集合遍历
6.1 键找值的方法
选获得Map的键,然后通过键获得对应的值。
public class HashMapTest1 {
    public static void main(String[] args) {
        HashMap<Integer, String> hashMap = new HashMap<>();
        hashMap.put(1, "张三");
        hashMap.put(2, "李四");
        hashMap.put(3, "王二");
        Set<Integer> integers = hashMap.keySet();
        for (Integer integer : integers) {
            System.out.println("{key=" + integer + ", value=" + hashMap.get(integer) + "}");
        }
    }
}
6.2 迭代器方式
把键值对看成一个对象,获得这个对象集合进行遍历
public class HashMapTest2 {
    public static void main(String[] args) {
        HashMap<Integer, String> hashMap = new HashMap<>();
        hashMap.put(1, "张三");
        hashMap.put(2, "李四");
        hashMap.put(3, "王二");
        Set<Map.Entry<Integer, String>> entries = hashMap.entrySet();
        for (Map.Entry<Integer, String> entry : entries) {
            System.out.println("{key=" + entry.getKey() + ", value=" + entry.getValue() + "}");
        }
    }
}
6.3 Lambda表达式
public class HashMapTest3 {
    public static void main(String[] args) {
        HashMap<Integer, String> hashMap = new HashMap<>();
        hashMap.put(1, "张三");
        hashMap.put(2, "李四");
        hashMap.put(3, "王二");
        // 传统匿名内部类
        hashMap.forEach(new BiConsumer<Integer, String>() {
            @Override
            public void accept(Integer integer, String s) {
                System.out.println("{key=" + integer + ", value=" + s + "}");
            }
        });
        
        // Lambda表达式
        hashMap.forEach((i, s) -> System.out.println("{key=" + i + ", value=" + s + "}"));
    }
}
本章结束,用于个人学习和小白入门,大佬勿喷!希望大家多多点赞收藏支撑支撑!
源码 【GitHub】 【码云】
猜你喜欢
- 2024-10-26 Java8 List转Map,我卡壳了......
 - 2024-10-26 HashMap 的 7 种遍历方式与性能分析!(强烈推荐)
 - 2024-10-26 Java集合-- Map(Java集合类)
 - 2024-10-26 js 函数式编程:不要再使用 for 循环啦,试试 map 吧
 - 2024-10-26 大厂Java二面:Spring循环依赖,烂大街的问题这么答面试官才满意
 - 2024-10-26 JAVA集合之 MAP和HASHMAP(java中map和hashmap)
 - 2024-10-26 双列集合Map不再难懂:轻松掌握这些知识点!
 - 2024-10-26 用到停不下来,Java 8 新特性:foreach 和 stream
 - 2024-10-26 Go语言开发者必知必会的Map优化技巧
 - 2024-10-26 计算机程序员的入门实践-Map常用的遍历方式(七)
 
欢迎 你 发表评论:
- 最近发表
 
- 标签列表
 - 
- java反编译工具 (77)
 - java反射 (57)
 - java接口 (61)
 - java随机数 (63)
 - java7下载 (59)
 - java数据结构 (61)
 - java 三目运算符 (65)
 - java对象转map (63)
 - Java继承 (69)
 - java字符串替换 (60)
 - 快速排序java (59)
 - java并发编程 (58)
 - java api文档 (60)
 - centos安装java (57)
 - java调用webservice接口 (61)
 - java深拷贝 (61)
 - 工厂模式java (59)
 - java代理模式 (59)
 - java.lang (57)
 - java连接mysql数据库 (67)
 - java重载 (68)
 - java 循环语句 (66)
 - java反序列化 (58)
 - java时间函数 (60)
 - java是值传递还是引用传递 (62)
 
 

本文暂时没有评论,来添加一个吧(●'◡'●)