..
介绍
在开始解决数组问题之前,理解并实现类似数组的数据结构是一个很好的实践。
本课教您如何实现常见的数组操作,例如插入元素、删除元素、获取元素、求数组长度以及打印数组元素。
我们正在建设什么?
我们将从头开始构建一个数组,其中包含一些最常见的数组操作,如上所述。
我们还将学习如何通过调整方法将固定大小的数组转换为动态数组。这就是动态数组的概念:LinkedList
、ArrayList
、 以及一些更复杂的数据结构。
软件中的每个需求都被分成几个部分,我们对每个部分进行处理,最后将它们组合在一起。那么让我们分解一下需求。
问题陈述
从头开始构建一个数组并将元素存储在其中。该数组应该允许插入、删除、获取和打印元素。
Input:
CREATE -> 10 // create an array with capacity 10
INSERT -> {1, 2, 3, 4, 5} // insert these elements
DELETE -> 2 // remove 2nd index element
GET -> 0 // print 0th element
SIZE -> `.size()` // should print how many items currently an array has
PRINT -> // print all elements shown in output
Output:
{1, 2, 4, 5, 0, 0, 0, 0, 0, 0}
需求细目
当被问到或遇到问题时,将要求写在纸上。
我们的要求是:
- 创建一个数组。
- 该数组应该具有以下方法。
insert()
remove()
get()
size()
print()
- 使数组自动调整大小(在下一篇文章中介绍)。
- 错误处理(可选,但当您与面试官一起构建数组时,它会增加价值)。我们有我们的要求。让我们来分解一下这个问题。
始终将问题分解为更小的块。构建较小的零件并将它们组合起来以完成要求将很容易。
阵列构建
创建数组
创建一个具有两个字段/属性的数组int[] data
和size
. 用于初始化数组大小的构造函数。
public class Array {
private int[] data;
private int size;
public Array(int capacity) {
data = new int[capacity];
size = 0;
}
}
我们size = 0
为基于零索引的数组初始化了 , 。当我们将元素插入数组时,我们是从索引插入它们0
。
我们创建了一个基Array
类,我们需要编写一些需要在我们创建的自定义数组数据结构上执行的基本数组操作。
插入一个元素
我们需要编写一个将项目插入数组的方法。
public void insert(int element) {
data[size] = element;
size += 1;
}
或者您可以使用指定简写语法:
public void insert(int element) {
data[size++] = element;
}
0
我们在构造函数中初始化了数组大小。因此第一个元素存储在0
索引中。
当我们调用 时data[size] = element
,我们将一个项目存储在数组中的第0
th 索引处。
在下一行中,我们有size += 1
,它将大小变量从0
增加到1
。因此下一个项目将存储在下一个槽中。
如果我们想在中间索引或起始索引插入元素怎么办?我们需要替换该槽中的该元素吗?或者我们应该移动元素并在槽中插入一个元素?
在接下来的课程中,您将学习如何在数组中编写移位算法来插入元素。
标签:index,int,构造,数组,数据结构,data,public,size From: https://blog.51cto.com/u_15739596/6845405