1. 数组简介
数组(Array)是一种 线性表(将数据排成一条线一样的结构) 数据结构,用一组 连续内存空间 来存储一组具有 相同类型 的数据。
2. 数组的常见操作
数组最常见的操作无非增删改差,下面分别来对各个操作进行介绍,假设数组类的定义如下:
public class Array{ // 用于保存数据 public int data[]; // 数组长度 private int size; // 数组中实际元素个数 private int count; }
2.1 按照下标随机访问操作
要实现随机访问,那么需要先看访问的下标位置是否合法,不合法则访问失败,合法则放回当前位置元素。
// 根据下标找到数组中的元素并返回 public int find(int index){ // 下标小于 0 或者超出当前数组元素个数,访问不合法 if(index < 0 || index >= count){ return -1; } // 位置合法直接返回访问位置的值 return data[index]; }
2.2 数组的插入
要实现数组的插入,通常有如下步骤:
先要判断数组是否已满,满了自然插入不了,只有当数组还没满时才能插入;
而当数组未满时,也需要判断插入位置是否合法,不合法肯定会失败,合法时才能够进行正常插入;
当数组未满同时插入位置合法时,我们只需要将插入位置后的元素整体向后移动一位即可;
同时在要插入的位置处插入要插入的值,同时将数组元素个数加一。
// 向数组中插入元素 public boolean insert(int index, int value){ // 若数组已满,则插入失败 if(count == size){ System.out.println("数组已满"); return false; } // 若数组未满,则可以插入,但是需要考虑插入位置是否合法 // 位置不合法,插入失败 if(index < 0 || index > count){ System.out.println("插入数据位置不合法"); return false; } // 位置合法 for(int i = count; i > index; --i){ // 从插入位置后的数据,整体向后移一位 data[i] = data[i - 1]; } // 将要插入的位置赋值为要插入的值,同时数组中的元素个数 +1 data[index] = value; count += 1; return true; }
2.3 数组的删除
要实现数组的删除操作,通常有如下步骤:
- 判断要删除的位置是否合法,不合法删除失败,合法才能进行下一步从操作;
- 删除位置合法时,需要将删除位置后的元素整体向前移动一位,同时数组中的元素数目减一。
// 从数组中删除元素 public boolean delete(int index){ if(index < 0 || index >= count){ System.out.println("位置不合法,删除失败"); return falise; } // 将删除位置后的元素整体向前移动一位 for(int i = index + 1; i < count; ++i){ // 即 data[index - 1] = data[index + 1],往后以此类推 data[i - 1] = data[i]; } // 删除后,数组元素数目减一 count -= 1; return true; }
2.4 数组的更新
所谓数组更新,只要位置合法,只需要将对应索引位置赋值为新的值即可。
// 数组更新 public boolean update(int index, int value){ if(index < 0 || index >= count){ System.out.println("位置不合法,更新失败") return false; } // 直接将索引位置的赋值为新的值即可 data[index] = value; return true; }
3. 总结
对于数组这一数据结构,其最常见的操作无非上边所描述的四种,当然我举例都是用的 int
数据类型的值。如果你想用其他数据类型的数组,有了上面的实例,迁移过去不是分分钟的事情么!💯💯💯