当前位置: 首页 > news >正文

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实现//...
}

4.HashSet、LinkedHashSet 和 TreeSet 的区别?

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

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

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

http://www.lryc.cn/news/182324.html

相关文章:

  • Python 编程基础 | 第三章-数据类型 | 3.5、列表
  • Spring Cloud Zuul 基本原理
  • QT实现TCP服务器客户端的实现
  • 行为型设计模式——责任链模式
  • window安装压缩版postgresql
  • 数组(数据结构)
  • C/C++ 二分查找面试算法题
  • Linux基本指令(上)——“Linux”
  • XSS详解
  • 【图论】判环问题
  • 将3D MAX设计模型导入NX1988
  • 操作系统原理实验三:页面调度算法程序
  • QT实现tcp服务器客户端
  • tcp拥塞控制原理
  • 【C++设计模式之简单工厂模式】分析及示例
  • 云原生定义整理
  • 华硕X555YI, Win11下无法调节屏幕亮度
  • 踩坑 | vue动态绑定img标签src属性的一系列报错
  • 强化学习环境 - robogym - 学习 - 1
  • 如果在 Mac 上的 Safari 浏览器中无法打开网站
  • 力扣练习——链表在线OJ
  • 四、互联网技术——局域网拓扑结构
  • Spring Webflux DispatcherHandler源码整理
  • 【Netty】ByteToMessageDecoder源码解析
  • DevEco Studio设置Nodejs提示路径只能包含英文、数字、下划线等
  • 大模型 Decoder 的生成策略
  • 队列和栈相互实现
  • Node.js 是如何处理请求的
  • 数据结构与算法之堆: Leetcode 215. 数组中的第K个最大元素 (Typescript版)
  • SpringBoot快速入门