java数据结构

数据结构是你学好这门技术的一个底层原理,无论是日常的开发,还是全栈。这门课程始终起到关键的作用,因此接下来我会用理论加程序为你解释其内部的一些原理,同时也会再接下来这段时间出一个关于java面试的基础问题。

一:数据结构概述

数据结构是指相互之间存在着一种或者多种关系的数据元素的集合和该集合中数据的组成

数据的存储结构

数据的存储结构分为两种,顺序存储结构和链式存储结构

顺序存储:是指我们把数据存放在连续的存储单元,其数据关系如同与我们生活中的物理关系
链式存储:是指通过头节点来标记我们的地址位置,从而连接我们的队头以及队尾。同样的你可以将其理解为餐厅领取座位号来进行一个入座。 相比于传统的顺序存储结构,链式存储结构能够实现当你需要进行插队读取数据时候,可以以标记的方式来进行。

数据的逻辑结构

数据的逻辑结构包含 集合结构 ,线性结构,树形结构,图形结构

算法的概述

算法是解决特定问题的有限步骤序列,需要满足五大特性

算法的五大特性:输入,输出,可行性,确定性,有穷性
算法的基本要求:正确性,可读性,健壮性,时间复杂度,空间复杂度

数组的基本使用

线性数据结构是计算机科学中最基础且应用广泛的数据结构类型,其核心特征为数据元素之间仅存在“一对一”的逻辑关系,形成严格的线性序列


数组要求我们在进行一个输出的时候,长度是无法进行一个更改的,同样的当你的赋值的元素超过定义的数组下标就会出现一个溢出。同样的这里我们可以通过操作来改变数组的大小

数组元素的添加

原理:创建长度+1的新数组,复制原数组内容后添加新元素。

同样的这个方法并不太适合大多数情况,这里我们准备了第二种ArryList动态数组,用add()方法来进行一个回转

Integer[] arr = {1, 2, 3}; // 需用包装类
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(arr));
list.add(4); // 末尾添加
list.add(1, 5); // 在索引1处插入
Integer[] newArr = list.toArray(new Integer[0]);

数组元素的删除

原理:创建长度-1的新数组,复制时跳过需删除的元素。

int[] arr = {1, 2, 3, 4};
int indexToRemove = 1; // 删除索引1的元素
int[] newArr = new int[arr.length - 1];
for (int i = 0, j = 0; i < arr.length; i++) {
    if (i != indexToRemove) {
        newArr[j++] = arr[i];
    }
}
// 或用System.arraycopy分段复制(效率更高)
System.arraycopy(arr, 0, newArr, 0, indexToRemove);
System.arraycopy(arr, indexToRemove + 1, newArr, indexToRemove, arr.length - indexToRemove - 1);

posted @ 2025-06-15 23:59  白鹿为溪  阅读(11)  评论(0)    收藏  举报