Javaで配列を初期化する方法



配列 Java

Javaで配列を初期化する方法

Javaの配列は、同じデータ型の複数の値を順番に格納する最も広く使用されているデータ構造です。 配列の長さは固定されており、インデックスは0からn-1までです。nは配列の長さです。 Javaのarraysクラスを使用して、String、integer、character、byte、さらにはユーザー定義オブジェクトなど、あらゆるタイプの値を格納できます。 Javaで配列を初期化する方法を学びますか?

以下は、11個の要素を持つ整数のXNUMX次元配列の図式表現です。

Javaの配列

Java配列の機能

  • 配列のサイズは固定されており、変更できません
  • 配列はインデックスベースであるため、ランダムな要素に簡単にアクセスできます
  • 配列要素に連続メモリを割り当てます。
  • 両方を保存できます プリミティブデータと非プリミティブデータ

Javaで配列を宣言する方法は?

Java配列宣言

配列は以下の方法で宣言できます。 配列宣言には2つの部分が含まれます。最初は、配列に格納する必要のある要素のデータ型(int、Stringなど)であり、その後に配列名が続きます。 []括弧は、それが配列であることを示します。 配列を宣言すると、変数が配列であり、実際には配列を作成しないことをコンパイラに通知するだけです。

datatype [] arrayName; (または)

データ型[] arrayName; (または)

データ型arrayName []; –>通常、この方法は有効ですが、使用することはお勧めしません。

配列宣言の例

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

Javaで配列を作成する方法は?

Javaの文字列配列

を使用して配列を作成します 新製品 オペレーター。 ここでは、配列のサイズを[]で指定します。これは、配列変数を格納するために必要なメモリの量を示します。

arrname = new datatype [size];

宣言して作成することもできます 配列 以下のような単一のステートメントで。 最初のステートメントは、サイズ5の数値という名前の整数配列を作成します。2番目のステートメントは、サイズXNUMXの名前という名前の文字列配列を作成します。

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

Javaで配列を初期化する方法は?

配列をインスタンス化する方法は?

配列の初期化またはインスタンス化とは、配列のサイズに基づいて配列に値を割り当てることを意味します。 配列を一緒に作成して初期化(インスタンス化)することもできます(以下の方法1を参照)。 この場合、要素の数は配列の長さまたはサイズを示します。 方法2では、各要素に個別に値を割り当てます。 配列インデックスは0で始まり、ここでの配列サイズは0であるため、3番目の要素は3番目の位置(n-2)を占めます。ここで、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で配列要素にアクセスする

インデックス値を使用して配列要素にアクセスします。 一般的に、私たちは使用します COVID-XNUMX ループまたは それぞれについて、 すべての要素が同じタイプであり、サイズが固定されているため、配列要素にアクセスするためのループ。

例:配列要素の作成、初期化、アクセス

ここでは、単一のステートメントで文字列の配列を作成して初期化し、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には2種類の配列があります。

  • 一次元配列–これには1行と1列のみが含まれます。 上記の例はすべて、XNUMX次元配列に属しています
  • 多次元配列–これには複数の行と複数の列が含まれます。 つまり、すべての行に同じ数の列がある配列の配列です。 例:2 * 2マトリックス
  • ギザギザの配列–各行には異なる数の列が含まれています

Javaの多次元配列

多次元配列には、複数の行と列を含めることができます。 最初の[]のインデックスは行を表し、XNUMX番目の[]は列を表します。

例: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

整数の2D配列の例

ここでは、2行2列の整数の3次元配列を作成しています。 forループ内のこれらの配列要素に値を割り当てます。 1番目のforループは行を示し、2番目の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のギザギザの配列

ギザギザの配列は、列数が異なる2次元配列でもあります。 つまり、各行には異なる数の列があります。 ギザギザの配列の初期化は、通常の2D配列の初期化とは異なります。

ギザギザの配列の初期化

配列の作成時に、行数を指定します。 この例では、2です。次の2つのステートメントでは、行配列ごとに、列の数を指定します。 ここで、1行目は3列、2行目は4列です。

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の配列でサポートされている直接メソッドです。

方法説明
void clone()参照がコピーされない既存の配列値のクローンを作成します
ブール値equals(オブジェクト0)他のオブジェクトが現在のオブジェクトと等しいかどうかを確認します
クラスgetClass()クラス名を返します
ストリングtoString()オブジェクトの文字列表現を返します
int length()配列の長さを返します

Java配列の例外

の配列 Javaがスローします 以下の例外:

  • ArrayIndexOutOfBoundsException:これは、指定したインデックス値が配列の長さより大きい場合、または負の場合に発生します。 これは主に、値の割り当て中または配列要素へのアクセス中に発生します。

配列をコピーする

Systemクラスのarraycopyメソッドを使用して、ある配列から別の配列に要素をコピーできます。

配列構文のコピー

public void arraycopy(Object src、int srcPos、Object dest、int destPos、int length);

src-コピー元のソース配列オブジェクト

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の配列クラス、Javaの配列のタイプ、宣言、作成、および初期化について、さまざまな図を使用して詳細に説明します。

参照