2.容器

2020-11-02  本文已影响0人  抄无止境

1. java 容器都有哪些?

图片.png

2. Collection 和 Collections 有什么区别?

3. List、Set、Map 之间的区别是什么?

图片.png

4. HashMap 和 Hashtable 有什么区别?

5. 如何决定使用 HashMap 还是 TreeMap?

6.HashMap

6.1 说一下 HashMap 的实现原理?

6.2 HashMap扩容原理??

6.3 HashMap如何解决碰撞的?

HashMap使用链表来解决碰撞冲突,当数组中的key的hash值位置上有元素时,就把这个元素放入链表的头部,最先加入的放到链表的尾部。

6.4 为什么要在jdk1.8以后在HashMap中引入红黑树?

6.5 为什么链表个数大于8个才会选择使用红黑树?

6.6 既然数组+红黑树这么棒,那为什么hashmap不直接就用数组+红黑树呢?

6. 说一下 HashSet 的实现原理?

7. ArrayList 和 LinkedList 的区别是什么?

8. 如何实现数组和 List 之间的转换?

1.List转换成为数组:调用ArrayList的toArray方法。
2.数组转换成为List:调用Arrays的asList方法。

9.ArrayList 和 Vector 的区别是什么?

10. Array 和 ArrayList 有何区别?

1.Array可以容纳基本类型和对象,而ArrayList只能容纳对象。
2.Array是指定大小的,而ArrayList大小是不固定的,ArrayList随着数据逐渐增大而增大。

  1. Array没有提供ArrayList那么多功能,比如addAll、removeAll和iterator等。

11. 在 Queue 中 poll()和 remove()有什么区别?

poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。

12. 哪些集合类是线程安全的?

13. Iterator 怎么使用?有什么特点?

Java中的Iterator功能比较简单,并且只能单向移动:
(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。
(2) 使用next()获得序列中的下一个元素。
(3) 使用hasNext()检查序列中是否还有元素。
(4) 使用remove()将迭代器新返回的元素删除。
Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

14. Iterator 和 ListIterator 有什么区别?

15.怎么确保一个集合不能被修改?

16. HashSet集合存储数据结构(哈希表)

图片.png

17. Comparable和Comparator区别?

18 CAS实现原理,以及ABA问题

数据结构

1.数组(线性表)

2.链表

3.二叉树(红黑树)

感谢如下分享
HashSet集合存储数据结构(哈希表)
Java面试题(容器篇)
Java容器面试题
HashMap原理分析(含1.8以后的红黑树)

上一篇下一篇

猜你喜欢

热点阅读