• 技术文章 >Java >java教程

    Java中Map接口的使用以及面试知识点总结

    长期闲置长期闲置2022-07-20 20:42:14转载213
    本篇文章给大家带来了关于java的相关知识,其中主要整理了Map接口的使用以及面试知识点的相关问题,包括了Map接口存储特点、常用实现类、创建方法、常用方法等等内容,下面一起来看一下,希望对大家有帮助。

    推荐学习:《java视频教程

    Map接口

    存储特点

    常用实现类

    1. HashMap
      • JDK1.2 底层哈希表实现 线程不安全,效率高
    2. LinkedHashMap
      • JDK1.2 是HashMap的子类,底层哈希表实现 线程不安全,效率高
    3. TreeMap
      • JDK1.2 是SortedMap的实现类,底层红黑树实现 线程不安全,效率高
    4. HashTable
      • JDK1.0 底层哈希表实现 线程安全,效率低
    5. Properties
      • JDK1.0 是HashTable的子类,底层哈希表实现 线程安全,效率低

    创建方法

    Map<键的泛型,值的泛型> 集合名=new 实现类名<键的泛型,值的泛型>();

    tips:一个键值对才是一个元素

    常用方法

    代码举例:

    public class Test {
        public static void main(String[] args) {
            //数字-String   1 - 一   1 - yi
            Map<Integer, String> map = new HashMap<Integer, String>();
            map.put(1, "一");
            map.put(111, "yiyiyi");
            map.put(666, "liuliuliu");
            map.put(111, "一一一");
    
            System.out.println(map.containsKey(678));//f
            System.out.println(map.containsValue("yiyiyi"));//t
    
            System.out.println(map.get(111));
    
            map.remove(666);
            System.out.println(map.get(666));
    
            System.out.println(map.size());//2
        }}

    遍历方法

            //获取所有键
            Set<键的泛型> set=集合名.keySet();
            //遍历所有键
            set.forEach(
                o-> 
                //o就代表当前正在被遍历的键
                //通过集合名.get(o)可以得到对应的值
            );如:		Map<Integer, String> map = new HashMap<>();
            map.put(123, "yiersan");
            map.put(234, "ersansi");
            map.put(456, "siwuliu");
            map.put(999, "jiujiujiu");
            Set<Integer> set=map.keySet();
            set.forEach(o-> System.out.println("键:"+o+",值:"+map.get(o)));
    Collection<值的泛型> coll = 集合名.values();coll.forEach(v-> v就代表当前的值);如:		Collection<String> coll = map.values();
            coll.forEach(v-> System.out.println(v));
            //获取键值对对象集合
            Set<Map.Entry<键的泛型,值的泛型>> set2=集合名.entrySet();
            for (Map.Entry entry : set2) {
                //通过entry.getKey()获取键
                //通过entry.getValue()获取值
            }如:        Set<Map.Entry<键的泛型,值的泛型>> set2=集合名.entrySet();
            for (Map.Entry entry : set2) {
                System.out.println("键:"+entry.getKey()+",值:"+entry.getValue())
            }
            System.out.println("lambda自遍历:");
            set2.forEach(entry-> System.out.println("键:"+entry.getKey()+",值:"+entry.getValue()));
            集合名.forEach(new BiConsumer<键的泛型, 值的泛型>() {
                @Override
                public void accept(键的泛型 i, 值的泛型 s) {
                    //i代表键
                    //s代表值
                }
            });
            System.out.println("lambda简化自遍历:");
            map.forEach((k,v)-> k代表键,v代表值);如:
    		map.forEach(new BiConsumer<Integer, String>() {
                @Override
                public void accept(Integer i, String s) {
                    System.out.println("键:"+i+",值:"+s);
                }
            });
            System.out.println("lambda简化自遍历:");
            map.forEach((k,v)-> System.out.println("键:"+k+",值:"+v));

    不同实现类的使用

    集合面试知识点补充

    推荐学习:《java视频教程

    以上就是Java中Map接口的使用以及面试知识点总结的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:java
    上一篇:简单介绍Java Servlet程序 下一篇:简单归纳java线程池的四种创建方式
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 详细介绍JavaScript中Promise的基本概念及使用方法• 简单了解JavaScript事件的冒泡、委派、绑定和传播• 火了!新的JavaScript运行时:Bun,性能完爆Node• 详细了解JavaScript编译原理• JavaScript怎么处理树状结构数据的增删改查
    1/1

    PHP中文网