数据结构系列之什么是数组?
数据结构系列之什么是数组?
1、什么是数组?
数组是一种很常见的数据结构,数组是一个连续的内存区域,由大小相等的项组成。如图画图表示数组的结构:
2、创建数组方式
动态创建
初始化时由程序员指定数组长度,由系统为数组分配初始数据char[] carr = new char[5];
静态创建
char[] strs = new char[]{ ‘A’, ‘E’ , ‘U’ , ‘Y’ , ‘U’};
3、什么是多维数组?
数组是可以多维的,在java程序中支持二维数组的操作,将一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格
语法:
int[][] arr = new int[3][2];
ps:如上定义了一个二维数组,有3个一维数组,每个一维数组有两个元素
4、数组的特性是什么?
归纳一下数组的特性:
- 数组内存地址是连续的
- 数据访问极快,数组可以通过下标访问,所以性能极高
- 数组增删操作为了保证数组越界问题,需要动态扩容,性能不好
5、数组典型例子
下面通过一个例子,自己定义一个数组类,实现数组的基本操作,比如新增元素、移除元素等等
public class MyArray {
private int[] a;
private int n;
public MyArray() {
a = new int[16];
n = 0;
}
public void initialize() {
for (int i = 0 ; i <= 10; i++) {
a[i] = i;
}
n = 10;
}
public void print() {
for (int i = 0 ; i < n ; i++) {
System.out.print(a[i] + " ");
}
// 换行
System.out.println();
}
public void set(int position , int value) {
a[position] = value;
}
public int get(int position) {
return a[position];
}
public void put(int position , int value) {
for (int i = n ; i >= position ; i--) {
a[i+1] = a[i];
}
a[position] = value;
n += 1;
}
public void remove(int position) {
for (int i = position ; i < n ; i ++ ) {
a[i] = a[i+1];
}
n -= 1;
}
public static void main(String[] args) {
MyArray array = new MyArray();
// 初始化数据数据
array.initialize();
// 打印验证 0 1 2 3 4 5 6 7 8 9
array.print();
// 数组对应位置设置数据
array.set(0 , 10);
// 打印验证 10 1 2 3 4 5 6 7 8 9
array.print();
// 重新初始数组
array.initialize();
// 在对应位置附加上数据
array.put(0 , 11);
// 打印验证 11 1 2 3 4 5 6 7 8 9
array.print();
// 重新初始数组
array.initialize();
// 对应位置移除数组元素
array.remove(0);
// 打印验证 1 2 3 4 5 6 7 8 9
array.print();
}
}
还没有评论,来说两句吧...