mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-20 22:17:09 +08:00
Update Java集合框架常见面试题总结.md
fix:格式调整
This commit is contained in:
parent
db1c987a47
commit
81d2f39317
@ -40,7 +40,7 @@
|
||||
|
||||
|
||||
## <font face="楷体">Arraylist 与 LinkedList 区别</font>
|
||||
Arraylist底层使用的是数组(存读数据效率高,插入删除特定位置效率低),LinkedList底层使用的是双向循环链表数据结构(插入,删除效率特别高)。学过数据结构这门课后我们就知道采用链表存储,插入,删除元素时间复杂度不受元素位置的影响,都是近似O(1)而数组为近似O(n),因此当数据特别多,而且经常需要插入删除元素时建议选用LinkedList.一般程序只用Arraylist就够用了,因为一般数据量都不会蛮大,Arraylist是使用最多的集合类。
|
||||
Arraylist底层使用的是数组(存读数据效率高,插入删除特定位置效率低),LinkedList 底层使用的是双向链表数据结构(插入,删除效率特别高)(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别:); 详细可阅读JDK1.7-LinkedList循环链表优化。学过数据结构这门课后我们就知道采用链表存储,插入,删除元素时间复杂度不受元素位置的影响,都是近似O(1)而数组为近似O(n),因此当数据特别多,而且经常需要插入删除元素时建议选用LinkedList.一般程序只用Arraylist就够用了,因为一般数据量都不会蛮大,Arraylist是使用最多的集合类。
|
||||
|
||||
## <font face="楷体">ArrayList 与 Vector 区别</font>
|
||||
Vector类的所有方法都是同步的。可以由两个线程安全地访问一个Vector对象、但是一个线程访问Vector
|
||||
@ -76,7 +76,8 @@ Hashtable和HashMap有几个主要的不同:线程安全以及速度。仅在
|
||||
**==与equals的区别**
|
||||
|
||||
1. ==是判断两个变量或实例是不是指向同一个内存空间 equals是判断两个变量或实例所指向的内存空间的值是不是相同
|
||||
2. ==是指对内存地址进行比较 equals()是对字符串的内容进行比较3.==指引用是否相同 equals()指的是值是否相同
|
||||
2. ==是指对内存地址进行比较 equals()是对字符串的内容进行比较
|
||||
3. ==指引用是否相同 equals()指的是值是否相同
|
||||
|
||||
## <font face="楷体">comparable 和 comparator的区别</font>
|
||||
- comparable接口实际上是出自java.lang包 它有一个 compareTo(Object obj)方法用来排序
|
||||
|
Loading…
x
Reference in New Issue
Block a user