• Java集合面试题


    一、Java集合面试题

    1.LinkedHashMap底层原理?

    HashMap是无序的,迭代HashMap所得到元素的顺序并不是它们最初放到HashMap的顺序,即不能保持它们的插入顺序。

    LinkedHashMap继承于HashMap,是HashMap和LinkedList的融合体,具备两者的特性。每次put操作都会将entry插入到双向链表的尾部

    2.讲一下TreeMap?

    TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序。

    TreeMap的特点:

    1. TreeMap是有序的key-value集合,通过红黑树实现。根据键的自然顺序进行排序或根据提供的Comparator进行排序。
    2. TreeMap继承了AbstractMap,实现了NavigableMap接口,支持一系列的导航方法,给定具体搜索目标,可以返回最接近的匹配项。如floorEntry()、ceilingEntry()分别返回小于等于、大于等于给定键关联的Map.Entry()对象,不存在则返回null。lowerKey()、floorKey、ceilingKey、higherKey()只返回关联的key。

    3. HashSet底层原理?

    HashSet 基于 HashMap 实现。放入HashSet中的元素实际上由HashMap的key来保存,而HashMap的value则存储了一个静态的Object对象。

    public class HashSet<E>
        extends AbstractSet<E>
        implements Set<E>, Cloneable, java.io.Serializable {
        static final long serialVersionUID = -5024744406713321676L;
    
        private transient HashMap<E,Object> map; //基于HashMap实现
        //...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.HashSet、LinkedHashSet 和 TreeSet 的区别?

    HashSetSet 接口的主要实现类 ,HashSet 的底层是 HashMap,线程不安全的,可以存储 null 值;

    LinkedHashSetHashSet 的子类,能够按照添加的顺序遍历;

    TreeSet 底层使用红黑树,能够按照添加元素的顺序进行遍历,排序的方式可以自定义

  • 相关阅读:
    基于Java旅游管理系统设计实现(源码+lw+部署文档+讲解等)
    java毕业设计春晓学堂管理系统mybatis+源码+调试部署+系统+数据库+lw
    js判断参数是否为空方法
    qt 展示TF卡(USB、SD)内容时,中文乱码问题
    罗技蓝牙鼠标连接电脑教程
    用cpolar发布Ubuntu上的网页(1)
    [Linux入门]---进程优先级
    16-js面向对象
    不同天气状况识别
    ava异常处理面试题及答案
  • 原文地址:https://blog.csdn.net/Afu1021/article/details/133533309