Java数据结构面试题及答案(99%面试官必问题)

Java数据结构面试题及答案(99%面试官必问题)-mikechen

Java面试经常会问到Java数据结构面试题,下面给大家总结一份常考的Java数据结构面试题及答案。

1.Java数据结构常见的有哪些?

Java数据结构面试题及答案(99%面试官必问题)-mikechen

常见的会包含:数组、链表、堆栈、队列、哈希表、二叉树等。

 

2.数组

数组数据结构,如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

Java集合框架ArrayList,底层实现就是:数组。

数组按照索引查询元素,速度很快,时间复杂度为O(1)。

添加删除元素的操作很耗时间,时间复杂度为O(n)。

 

3.链表

Java链表是一种常见的数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。

Java链表主要分为:单链表和Java双向链表

链表结是由许多节点构成的,每个节点都包含两部分:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

1)数据部分:保存该节点的实际数据;

2)地址部分:保存的是上一个或下一个节点的地址。

比如:Java集合框架里,LinkedList就是使用到了链表。

 

4.队列

Java队列是一种操作受限的线性表,只允许在表的前端(front)进行删除操作又称作出队,在表的后端进行插入操作,称为入队。

如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

Java的消息队列,或者消息中间件的队列本质也是基于此的。

 

5.哈希表

哈希表,英文名为:Hash表,也称散列表,是根据键值而直接进行访问的数据结构。

如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

最典型的就是Java集合框架里的HashMap,底层实现就使用到了哈希表。

 

6.树

树是非常非常重要的一种数据结构,大家熟知的二叉树、红黑树等属于树的范畴。

1.二叉树

二叉树作为一种重要的树形结构类型,通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。

如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

二叉树还可以继续分类,衍生出满二叉树完全二叉树

二叉树遍历,会包含如下3种:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

 

2.平衡二叉树

平衡二叉树,英文名Balanced Binary Tree,是一种自平衡的树,也叫AVL树。

平衡二叉树具有以下性质:

  • 平衡二叉树规定了左结点小于根节点右结点大于根节点;
  • 并且还规定了左子树和右子树的高度差不得超过1,这样保证了它不会成为线性的链表;

如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

 

3.二叉排序树

二叉排序树,英文名Binary Sort Tree,是一种特殊的二叉树,极大的改善了二叉树节点查找的效率,又称为二叉查找树。

二叉排序树具体如下3大特征:

1.它要求节点的左子树小于该节点本身, 右子树大于该节点,每个节点都符合这样的规则;

2.若左子树不为空,左子树上节点值均小于或等于根节点的值;

3.若右子树不为空,右子树上节点值均大于或等于根节点的值;

如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

4.红黑树

红黑树根节点是黑色,节点是红色或黑色,如下图所示:

Java数据结构面试题及答案(99%面试官必问题)-mikechen

红黑树是一种自平衡二叉查找树,红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡。

以上就是常见的Java数据结构面试题及答案,更多的Java面试题及答案,请查看:1000+Java面试题及答案详解

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法