数组(Array)是一种线性数据结构,它由一系列元素组成,这些元素在内存中是连续的,可以通过下标(index)来访问。数组可以存储同一类型的元素,也可以通过下标来快速访问数组中的任意元素。
在Java中,数组是一种对象,可以通过new操作符进行创建。数组有两种形式:一维数组和多维数组。
一维数组:一维数组是一种最简单的数组形式,它由一组元素组成,这些元素按照顺序排列,通过一个下标来访问每个元素。例如,下面是一个包含5个整数的一维数组:
这个数组中的元素可以通过下标来访问,例如,要访问第3个元素,可以使用下标2:
int num = arr[2];
多维数组:多维数组是一种由一维数组组成的数据结构,其中每个元素也是一个数组,因此可以通过多个下标来访问数组中的元素。例如,下面是一个包含3行4列的二维数组:
int[][] arr = new int[3][4];
这个数组中的元素可以通过两个下标来访问,例如,要访问第2行第3列的元素,可以使用下标1和2:
int num = arr[1][2];
示例:使用一维数组实现栈
下面是一个使用一维数组实现栈的示例代码:
public class MyStack {
private int[] arr; // 数组
private int top; // 栈顶元素的下标
// 构造方法
public MyStack(int size) {
arr = new int[size];
top = -1;
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return top == arr.length - 1;
}
// 入栈
public void push(int num) {
if (isFull()) {
throw new RuntimeException("Stack is full!");
}
arr[++top] = num;
}
// 出栈
public int pop() {
if (isEmpty()) {
throw new RuntimeException("Stack is empty!");
}
return arr[top--];
}
// 返回栈顶元素
public int peek() {
if (isEmpty()) {
throw new RuntimeException("Stack is empty!");
}
return arr[top];
}
}
这个栈使用了一维数组来存储元素,使用top变量来记录栈顶元素的下标。push()方法用来将元素入栈,pop()方法用来将元素出栈,peek()方法用来返回栈顶元素。由于数组是一种固定大小的数据结构,因此这个栈的大小是固定的。