Java进阶:【集合】Map接口

简介: Java进阶:【集合】Map接口

Map接口

无序,唯一

HashMap

特点:无序。唯一,

特点是按照key进行总结的,因为底层key寻找哈希表的结构(数组+链表)

哈希表原理:如放入这个集合数据的对应的类,必须重写HashCode和equals这两个方法,否则结果就不符合唯一,无序的特点

添加:put(K key, V value), putAll(Map<? extends K,? extends V> m)

修改:

删除:clear(),remove(Object key)

查看:entrySet(), keySet(),size(),values()

判断: containsKey(Object key), containsValue(Object value), equals(Object o), get(Object key),isEmpty()

    public static void main(String[] args) {
    /*
    * 添加:put(K key, V value),  putAll(Map<? extends K,? extends V> m)
    * 修改:
    * 删除:clear(),remove(Object key)
    * 查看:entrySet(),   keySet(),size(),values()
    * 判断:  containsKey(Object key),   containsValue(Object value),   equals(Object o),  get(Object key),isEmpty()
    * */
//        思考为什么键值对,键的值是一样的,但是value缺是第一个的值
        HashMap<String,Integer> map = new HashMap<>();
        map.put("lili",123123);
        System.out.println(map.put("nana", 12345));
        map.put("feifei",34567);
        System.out.println(map.put("nana", 123123));
//        清空方法
//        map.clear();
//        map.remove("feifei");按照key移除
        System.out.println(map.size());
        System.out.println(map);
        System.out.println(map.containsKey("lili"));
        System.out.println(map.containsValue(123123));
        HashMap<String,Integer> map2 = new HashMap<>();
        map.put("lili",123123);
        System.out.println(map.put("nana", 12345));
        map.put("feifei",34567);
        System.out.println(map.put("nana", 123123));
        System.out.println(map==map2);
        System.out.println(map.equals(map2));//底层重写了equals比较集合中的值是否一致
        System.out.println("判断是否为空"+map.isEmpty());
        System.out.println(map.get("nana"));
        System.out.println(map.keySet());//查看集合中所有的k
        System.out.println(map.values());//查看集合中所有的v
        //通过k来遍历出v
        Set<String> set = map.keySet();
        for (String s : set) {
            System.out.print(map.get(s)+" ");
        }
        System.out.println();
        //entrySet 得到的是一对数据
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> entry : entrySet) {
            System.out.println(entry);
        }
    }

HashMap和Hashtable

HashMap是1.2开始的,效率高,线程不安全 Key可以是空值,并且null值也遵照唯一特点


Hashtable是1.0开始的,效率低,效率安全,对于Hashtable的key不能为null值


如果我想按照加入顺序来输出,我们可以有一个LinkedHashMap


LinkedHashMap

特点,唯一,有序,按照输入顺序输出


小结


1.png

1.png

相关文章
|
1月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
151 57
|
1月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
87 38
|
8天前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
13天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
45 6
|
15天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
36 5
|
28天前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
39 4
|
1月前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
25 2
|
1月前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
76 3
|
1月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
98 1
|
1月前
|
Java Android开发
Eclipse 创建 Java 接口
Eclipse 创建 Java 接口
32 1