Java 面试(三)数据结构和集合

  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、合并多个单有序链表(假设都是递增的)

posted @ 2018-03-27 02:09  爆炸的果核  阅读(260)  评论(0编辑  收藏  举报