Java数据结构高频面试题及答案(真实面试版).docxVIP

  • 0
  • 0
  • 约3.43千字
  • 约 5页
  • 2026-08-24 发布于河北
  • 举报

Java数据结构高频面试题及答案(真实面试版).docx

Java数据结构高频面试题及答案(真实面试版)

一、数据结构基础概念(高频基础题)

1.说说常用的数据结构有哪些?怎么分类?

日常开发和面试里最常用的就两大类:线性结构和非线性结构。

线性结构:元素是一对一顺序存储的,包括数组、链表、栈、队列。特点就是有明确的前后顺序。

非线性结构:元素是一对多或多对多的,主要是树、图、哈希表。我们Java集合里用的HashMap、TreeMap、ArrayList、LinkedList底层全是这些结构。

2.时间复杂度和空间复杂度怎么理解?常用的有哪些?

时间复杂度就是衡量代码执行快慢的,看数据量变大后,执行次数的增长趋势,不看常数、只看最高阶。空间复杂度就是代码运行占用的内存大小。

常用复杂度(从快到慢):O(1)常数、O(logn)对数、O(n)线性、O(nlogn)、O(n2)平方。

比如遍历数组是O(n),二分查找是O(logn),双层for循环嵌套一般是O(n2)。

二、数组链表(面试重中之重)

3.数组和链表的核心区别?工作中怎么选?

数组:内存连续、固定大小。查询快(随机访问,下标直接定位O(1)),但是增删慢,因为需要移动元素,而且初始化必须指定容量,容易浪费空间或溢出。

链表:内存不连续,靠指针连接节点,动态扩容。增删快(只需要改指针指向O(1)),但是查询慢,必须从头遍历O(n),不能随机访问。

使用场景:

文档评论(0)

1亿VIP精品文档

相关文档