1、常用数据结构简介
线性表、栈和队列、数组、树和二叉树、图
2、并发集合了解哪些?
ConcurrentHashMap;
ConcurrentSkipListMap;
ConCurrentSkipListSet;
CopyOnWriteArrayList;
CopyOnWriteArraySet;
ConcurrentLinkedQueue;
3、列举Java的集合以及集合之间的继承关系
根接口:Collection、Map
集合类分为Set、List、Queue和Map四大体系。
- Set 代表无序、不可重复集合;
- List 代表有序、可重复集合;
- Map 代表具有映射关系元素的集合;
- Queue 代表队列,实现元素的先进先出管理。
4、集合类以及集合框架
列举下上述四类接口的常见实现类:
Map:HashMap、HashTable、TreeMap、LinkedHashMap、ConcurrentHashMap
Set:HashSet、EnumSet、LinkedHashSet、TreeSet
List:ArrayList、LinkedList、Stack、Vector
Queue:ArrayDeque、LinkedList
5、容器类介绍以及之间的区别
容器类估计很多人没听这个词,Java容器主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)。
注意下工具类。
6、List,Set,Map的区别
Set是一个不包含重复元素的容器,允许元素为null值(最多存在一个null元素)。Set没有强制其中的元素必须有序,不允许将自身作为一个元素;
List是一个有序集合,也称为顺序表。通常允许包含重复的元素,如果允许null元素,那么也可以包含重复的null元素。
Queue(队列)是一个专为进行处理前保存元素而设计的集合,允许重复元素,通常不允许插入null元素。
Map中,不能包含重复的key;一个key只能映射到一个value。Map的实现类对所包含的元素会有不同的限制,HashTable的键和值都不允许为null,HashMap的键和值都允许为null
7、List和Map的实现方式以及存储方式
8、HashMap的实现原理
9、HashMap数据结构?
10、HashMap源码理解
11、HashMap如何put数据(从HashMap源码角度讲解)?
12、HashMap怎么手写实现?
13、ConcurrentHashMap的实现原理
14、ArrayMap和HashMap的对比
15、HashTable实现原理
16、TreeMap具体实现
17、HashMap和HashTable的区别
18、HashMap与HashSet的区别
19、HashSet与HashMap怎么判断集合元素重复?
20、集合Set实现Hash怎么防止碰撞
21、ArrayList和LinkedList的区别,以及应用场景
22、数组和链表的区别
23、二叉树的深度优先遍历和广度优先遍历的具体实现
24、堆的结构
25、堆和树的区别
26、堆和栈在内存中的区别是什么(解答提示:可以从数据结构方面以及实际实现方面两个方面去回答)?
27、什么是深拷贝和浅拷贝
28、手写链表逆序代码
29、讲一下对树,B+树的理解
30、讲一下对图的理解
31、判断单链表成环与否?
32、链表翻转(即:翻转一个单项链表)
33、合并多个单有序链表(假设都是递增的)