如何在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的String數組。

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 =新的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中的數組類型,聲明,創建和初始化數組。

參考文獻