数据结构之数组

一、数组的结构

数组是一组具有相同数据类型的元素的集合,并且存储在一段连续的存储单元中。

1.数组的逻辑结构

数据的逻辑结构

  • 数组有5个数据元素,其值分别为A、B、C、D、E
  • 元素可以通过索引(下标)来访问其存储的值
  1. Character[] arr = new Character[5];
  2. arr[0] = 'A';
  3. arr[1] = 'B';
  4. arr[2] = 'C';
  5. arr[3] = 'D';
  6. arr[4] = 'E';
  7. System.out.println(arr[0]);
  8. System.out.println(arr[1]);
  9. System.out.println(arr[2]);
  10. System.out.println(arr[3]);
  11. System.out.println(arr[4]);
2.数组的存储结构

数组的存储结构

  • 整个数组的元素,是一段连续的存储单元

二、在数组中查找元素

  • 如果不知道元素在数组中的位置,需要遍历整个数组元素,依次比较
  • 如果知道元素在数组中的位置(索引),只需要通过索引直接查找即可
    数组元素的查找

三、在数组中添加新的元素

  • 第一步:申请新增元素所占用的存储空间
  • 第二步:插入的元素插入位置后面的所有元素依次往后移动
    0.在数组元素C后面添加一个新元素F
    在元素C后面添加一个元素F
    1.因为数组没有剩余空间,所以需要在数组末尾申请一个新的元素空间,用来存储新元素
    在数组末尾申请新的存储空间
    2.将要插入的元素所在位置后面的元素依次往后移动,腾出空间给新增元素
    (1)最后一个元素移动到新申请的空间(往后移动一位)
    数组元素E向后移动
    (2)数据元素D往后移动一位
    数组元素D向后移动一位
    (3)新增元素F存入D原来所在的位置
    数组元素F存入D原来所在的位置

四、删除数组中的某个元素

  • 第一步:删除要删除的元素
  • 第二步:删除的元素所在位置后面的元素依次往前移动
    0.要删除数组元素C
    要删除数组元素C
    1.删除元素C,此时C所在空间没有存储任何数据
    删除元素C,此时C所在空间没有存储任何数据
    2.将删除元素后面的数据依次向前移动
    (1)将元素F向前移动一位
    将元素F向前移动一位
    (2)将元素D向前移动一位
    将元素D向前移动一位
    (3)将元素E向前移动一位
    将数据E将向移动一位
    此时最后一位的存储空间(原E所有的空间)上没有存储任何数据
    移动最后一位后的存储状况
    将最后一位元素所占用空间删除掉(空间释放)
    删除最后一位元素所占用的空间