Java面试笔记记录4

1.List、Set、Queue、Map四者的区别。

  • List存储的元素是有序的、可重复的。
  • Set存储的元素是不可重复的。
  • Queue按照特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。
  • Map使用键值对(key-value)存储,其中key是无序的、不可重复的,value是无序的、可重复的,每个键最多映射到一个值。

2.ArrayList和Array(数组)的区别。

  • ArrayList会根据实际存储的元素动态地扩容或缩容,而Array被创建后就不能改变长度。
  • ArrayList允许使用泛型来确保类型安全,Array则不可以。
  • ArrayList中只能存储对象。对于基本类型数据,需要使用其对应的包装类(如Integer、Double等)。Array可以直接存储基本类型数据,也可以存储对象。
  • ArrayList支持插入、删除、遍历等常见操作,并且提供许多API操作方法,比如add()、remove()等。Array只是一个固定长度的数组,只能按照下标访问其元素,不具备动态添加、删除元素的能力。
  • ArrayList创建时不需要指定大小,而Array创建时必须指定大小。

3.HashMap和HashTable的区别

  • HashMap是非线程安全的,Hashtable是线程安全的,因为Hashtable内部的方法基本都经过synchronized修饰。
  • HashMap要比HashTable效率高一点,目前Hashtable基本被淘汰。
  • HashMap可以存储null的key和value,但null作为key只能有一个,value可以有多个。
  • HashMap初始化大小为16,每次扩充为2倍,Hashtable初始化大小为11,之后百年未原来的2n+1。

4.HashMap和TreeMap的区别

TreeMap主要比HashMap多了对集合中的元素根据键排序的能力以及对集合内元素搜索的能力。

5.红黑树

二叉搜索树极端情况下可能会成为一个线性链表,复杂度由O(longN)变为O(N)。后续二叉平衡树规定了左右子树高度差不大于1,解决二叉树可能为线性链表的情况,但是每次插入删除节点时为了满足左右子树高度差不大于1的条件,会进行左旋和右旋,这时二叉平衡树的性能大打折扣。为了解决这个问题,便有了红黑树。

红黑树是一种特殊的二叉搜索树,每个节点都要存储位表示节点的颜色,或红或黑。

红黑树特性:

  1. 每个节点或红或黑
  2. 根节点是黑色
  3. 空叶子节点是黑色
  4. 如果一个节点为红色,那么它的子节点为黑色。
  5. 从任意一个节点到空叶子节点经过的黑节点数量相同。

未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值