如何在Java中初始化数组



排列 Java的

如何在Java中初始化数组

Java中的数组是使用最广泛的数据结构,它按顺序存储相同数据类型的多个值。 数组具有固定长度,索引从0到n-1开始,其中n是数组的长度。 我们可以在Java中使用arrays类来存储任何类型的值,例如String,integer,character,byte甚至是用户定义的对象。 我们将学习如何在Java中初始化数组?

下面是具有11个元素的整数的一维数组的图形表示。

Java中的数组

Java数组功能

  • 数组大小固定,无法更改
  • 由于数组是基于索引的,因此很容易访问随机元素
  • 为数组元素分配连续的内存。
  • 可以同时存储 原始数据和非原始数据 价值观

如何用Java声明数组?

Java数组声明

可以通过以下方式声明数组。 数组声明包含两部分,首先是我们需要存储在数组中的元素的数据类型(例如int,String等),其后是数组名称。 []中的括号表示它是一个数组。 当我们声明一个数组时,它只是告诉编译器变量是一个数组,实际上并没有创建一个数组。

数据类型[] arrayName; (或者)

数据类型[] arrayName; (或者)

数据类型arrayName []; –>通常,尽管此方法有效,但我们不希望使用此方法。

数组声明的例子

int[] arrNumbers;
String[] arrNames;
float[] arrValues;
boolean[] arrBoolean;
char[] arrLetters;
byte[] arrBytes;
double[] arrWeight;

如何用Java创建数组?

Java中的字符串数组

我们使用 操作员。 在此,我们在[]中指定数组的大小,该大小表示存储数组变量所需的内存量。

arrname =新的数据类型[大小];

我们还可以声明并创建一个 排列 如下所示。 第一条语句创建一个名为numbers的大小为5的整数数组。第二条语句创建一个名为names的大小为2的字符串数组。

int[] arrNumbers = new int[5];
String[] arrNames = new String[2];

如何在Java中初始化数组?

如何实例化数组?

数组初始化或实例化是指根据数组大小为数组分配值。 我们还可以一起创建和初始化(实例化)数组(请参阅下面的方法1)。 在这种情况下,元素的数量表示数组的长度或大小。 在方法2中,我们为每个元素分别分配值t0。 由于数组索引从0开始且此处的数组大小为3,因此第三个元素占据第二个位置,即n-3,其中n是数组的大小。

//Method 1
int[] arrNumbers = {1,2,3};

//Method 2
int[] arrNumbers = new int[3];
arrNumbers[0] = 1;
arrNumbers[1] = 2;
arrNumbers[2] = 3;

在Java中访问数组元素

我们使用其索引值访问数组元素。 通常,我们使用 循环或 对于每一个 循环访问数组元素,因为所有元素都是相同的类型并且具有固定的大小。

示例:创建,初始化和访问数组元素

在这里,我们将在单个语句中创建和初始化字符串数组,并使用for循环访问每个元素

public class ArrayDemo1 {

  public static void main(String[] args) {
    String[] arrMonths = {"May","June","July"};
    System.out.println("Length of array is: " + arrMonths.length);
    for(int i=0;i<arrMonths.length;i++)
    {
      System.out.println(arrMonths[i]); 
    }

  }

}
Output:
Length of array is: 3
May
June
July

示例:初始化数组和访问数组元素的另一种方法

在下面的示例中,我们首先声明并创建一个整数数组,然后将值分配给各个数组元素。 在这里,我们使用每个循环来访问数组元素。

public class ArrayDemo2 {

  public static void main(String[] args) {
    int[] numbers = new int[5];
    numbers[0] = 100;
    numbers[1] = 101;
    numbers[2] = 103;
    numbers[3] = 104;
    numbers[4] = 105;
    
    for(int i: numbers)
    {
      System.out.println(i);
    }

  }

}
Output:
100
101
103
104
105

Java中的数组类型

Java有两种类型的数组:

  • 一维数组–仅包含1行和1列。 以上所有示例均属于一维数组
  • 多维数组–包含多行和多列。 换句话说,它是一个数组的数组,其中所有行都具有相同的列数。 例如:2 * 2矩阵
  • 锯齿状数组–每行包含不同数量的列

Java中的多维数组

多维数组可以具有多个行和列。 第一个[]中的索引代表行,第二个[]中的索引代表列。

例如:int [] [] a = new int [2] [3]

这意味着该数组包含2行3列。 下面是多维数组的示意图

Java中的数组

创建字符串的多维数组的示例

下面的示例演示如何创建,声明和访问多维数组元素。 在这里,我们使用行和列索引直接访问数组元素。

public class ArrayMulti {

  public static void main(String[] args) {
    String[][] arrNames = {{"John","Jacob"},{"Thomas","Martin"}};
    System.out.println(arrNames[0][0] + " " + arrNames[0][1]);
    System.out.println(arrNames[1][0] + " " + arrNames[1][1]);

  }

}
Output:
John Jacob 
Thomas Martin

二维整数数组的示例

在这里,我们正在创建具有2行2列的整数的二维数组。 我们为for循环内的这些数组元素分配值。 第一个for循环表示行,第二个for循环表示列。

public class ArrayMulti {

  public static void main(String[] args) {
    //Declare and create multidimensional array
    int[][] arrnum = new int[2][3];
    for(int i=0;i<2;i++) {
      for(int j=0;j<3;j++) {
        //Assign values to array elements
        arrnum[i][j] = i+1;
        System.out.print(arrnum[i][j] + " ");
      }
      System.out.println();
    }

  }

}
Output:
1 1 1 
2 2 2 

Java中的锯齿状数组

锯齿状阵列也是具有不同列数的二维阵列。 换句话说,每一行都有不同数量的列。 锯齿阵列的初始化与普通2D阵列的初始化不同。

锯齿状数组的初始化

在数组创建期间,我们指定行数。 在此示例中,该值为2。在接下来的2条语句中,我们为每个行数组指定列数。 在这里,第一行有1列,第二行有3列。

int[][] arrnum = new int[2][];
arrnum[0] = new int[3];
arrnum[1] = new int[4];

在for循环中分配值的锯齿状数组示例

public class JaggedArray {

  public static void main(String[] args) {
    int[][] arrnum = new int[2][];
    arrnum[0] = new int[3];
    arrnum[1] = new int[4];

    int val=1;
    //Assign values
    for(int i=0;i<arrnum.length;i++) {
      for(int j=0;j<arrnum[i].length;j++) {
        arrnum[i][j] = val;
      }
    }
    
    //Print the values
    for(int i=0;i<arrnum.length;i++)
    {
      for(int j=0;j<arrnum[i].length;j++)
      {
        System.out.print(arrnum[i][j] + " ");
      }
      System.out.println();
    }
  }

}
Output:
1 1 1 
1 1 1 1 

锯齿状的数组示例,通过在数组创建过程中初始化值

public class JaggedArray {

  public static void main(String[] args) {
    int[][] arr = {{4,5,6},{1,2},{7,9,8}};
    for(int i=0;i<3;i++)
    {
      for(int j=0;j<arr[i].length;j++) {
        System.out.print(arr[i][j] + " ");
      }
      System.out.println();
    }
  }
}
Output:
4 5 6 
1 2 
7 9 8 

Java数组方法

以下是Java中的数组支持的直接方法

选项产品介绍
无效clone()克隆不复制引用的现有数组值
布尔等于(对象0)检查其他对象是否等于当前对象
类getClass()返回类名
字符串toString()返回对象的字符串表示形式
int length()返回数组的长度

Java数组异常

数组中 Java抛出 以下异常:

  • ArrayIndexOutOfBoundsException:当我们指定的索引值大于数组的长度或为负数时,就会发生这种情况。 这主要发生在赋值或访问数组元素时。

复制数组

我们可以使用System类的arraycopy方法将元素从一个数组复制到另一个数组。

复制数组语法

公共无效arraycopy(Object src,int srcPos,Object dest,int destPos,int length);

src-source数组对象,从中复制

srcPos –源数组中的起始位置

dest-要复制到的目标数组对象

destPos –目标数组中的起始位置

长度–要复制的数组元素的数量

复制数组的示例

在下面的示例中,我们将4个元素从源数组复制到目标数组。 因此,输出显示“ java”

public class ArrayCopy {

  public static void main(String[] args) {
    char[] a = {'d','l','h','y','j','a','v','a','g','r','t'};
    char[] b = new char[4];
    
    System.arraycopy(a, 4, b, 0, 4);
    System.out.println(String.valueOf(b));

  }

}
Output:
java

将数组传递给方法

在Java中,我们可以将数组对象传递给方法以进行进一步的操作或其他操作。 下面的示例显示了如何将整数的数组对象传递给方法并执行所有数组元素的加法。

public class ArrayDemo3 {

  public static void main(String[] args) {
    int[] num = {5,7,3,2,8};
    add(num);

  }
  
  public static void add(int[] num) {
    int sum = 0;
    for(int i=0;i<num.length;i++) {
      sum = sum + num[i];
    }
    System.out.println("Sum of array elements is : " + sum);
  }

}
Output:
Sum of array elements is : 25

从方法返回数组

我们也可以 返回一个数组 执行所需的操作后,从方法到主方法的对象。

public class ArrayDemo4 {

  public static void main(String[] args) {
    String[] arr = getArrayValues();
    for(String cities:arr) {
      System.out.println(cities);
    }
      

  }
  
  public static String[] getArrayValues() {
    String[] arrCities = {"Chennai","Bangalore","Delhi"};
    return arrCities;
  }

}
Output:
Chennai
Bangalore
Delhi

数组操作

数组中 Java属于java.util包。 java.util.Array类支持以下几种操作:

  • 我们可以使用Array类的copyOfRange方法将一系列元素从一个数组复制到另一个数组
  • 根据索引在数组中搜索特定值(二进制搜索)
  • 与数组比较以使用equals方法检查相等性
  • 使用fill方法填充数组以将特定值放置在索引处
  • 使用sort方法对数组进行排序

使用用户定义的对象创建数组

在Java中,我们还可以像创建字符串,整数等数组一样创建用户定义的对象。这是如何创建Student数组对象并初始化该数组对象的示例。

public class ArrayDemo5 {

  public static void main(String[] args) {
    Student[] s = new Student[2];
    s[0] = new Student(111,"Ajit");
    s[1] = new Student(112,"Biju");
  }

}
 class Student{
  public int rollno;
  public String name;
  public Student(int rno,String n) {
    rollno = rno;
    name = n;
  }
}

总结

本教程用各种插图详细描述Java中的Arrays类,Java中的数组类型,声明,创建和初始化数组。

参考