使用 Java 的 DSA - 数组

数组基础知识

数组是一个可以容纳固定数量项目的容器,这些项目应该是相同类型的。大多数数据结构都使用数组来实现其算法。以下是理解数组概念的重要术语

  • 元素 − 存储在数组中的每个项目称为元素。

  • 索引 −数组中元素的每个位置都有一个数字索引,用于标识元素。

数组表示

Array

根据上图所示,以下是需要考虑的重要点。

  • 索引从 0 开始。

  • 数组长度为 8,这意味着它可以存储 8 个元素。

  • 每个元素都可以通过其索引访问。例如,我们可以将索引 6 处的元素作为 9 获取。

基本操作

以下是数组支持的基本操作。

  • 插入 −在给定索引处添加一个元素。

  • 删除 − 删除给定索引处的一个元素。

  • 搜索 − 使用给定索引或按值搜索元素。

  • 更新 − 更新给定索引处的一个元素。

在 java 中,当数组用大小初始化时,它会按以下顺序为其元素分配默认值。

数据类型 默认值
byte0
short0
int0
long0L
float0.0f
double0.0d
char'\u0000'
booleanfalse
Objectnull

演示

package com.tutorialspoint.array;

public class ArrayDemo {
   public static void main(String[] args){
      
        // 声明一个数组
        int intArray[];
        
        // 初始化一个 8 int 数组
        // 预留 8 int 的内存
        intArray = new int[8];
        
        System.out.println("添加数据前的数组。");
        
        // 显示数组的元素。
        display(intArray);
        
        // 操作:插入
        // 在数组中添加元素
        for(int i = 0; i< intArray.length; i++)
        {
        // 将 i 的值放置在索引 i 处。
        System.out.println("在索引 "+i 处添加 "+i+");
        intArray[i] = i;
        }
        System.out.println();
        
        System.out.println("添加数据后的数组。");
        display(intArray);
        
        // 操作:插入
        // 任何位置的元素都可以直接更新
        int index = 5;
        intArray[index] = 10;
        
        System.out.println("更新索引处元素后的数组 " + index);
        display(intArray);
        
        // 操作:使用索引进行搜索
        // 使用索引搜索元素。
        System.out.println("索引处的数据 " + index + ": "+ intArray[index]);
        
        // 操作:使用值进行搜索
        // 使用值搜索元素。
        int value = 4;
        for(int i = 0; i< intArray.length; i++)
        {
         if(intArray[i] == value ){
            System.out.println(value + " Found at index "+i);
            break;
         }
        }         
        System.out.println("Data at index " + index + ": "+ intArray[index]);
   }

   private static void display(int[] intArray){
      System.out.print("Array : [");
      for(int i = 0; i< intArray.length; i++)
      {
         // 显示索引 i 处元素的值。
         System.out.print(" "+intArray[i]);
      }
      System.out.println(" ]");
      System.out.println();
   }
}

如果我们编译并运行上述程序,则会产生以下结果 −

添加数据前的数组。
数组:[ 0 0 0 0 0 0 0 0 ]

在索引 0 处添加 0
在索引 1 处添加 1
在索引 2 处添加 2
在索引 3 处添加 3
在索引 4 处添加 4
在索引 5 处添加 5
在索引 6 处添加 6
在索引 7 处添加 7

添加数据后的数组。
数组:[ 0 1 2 3 4 5 6 7 ]

更新索引 5 处的元素后的数组
数组:[ 0 1 2 3 4 10 6 7 ]

索引 5 处的数据:10
在索引 4 处找到 4