Java配列の定義と一般的な方法


配列:同じタイプのデータセットのセットで、長さが固定されます.
1次元配列:
方法1:まず配列を宣言する(配列を定義する):まだメモリ領域を開いていないから配列を作成する:メモリで、配列の長さに基づいて、「連続」メモリ領域を開き、初期化(デフォルト)を完了する
データ型
デフォルト
整数
0
浮動小数点数
0.0
char
空の文字
boolean
false
String
null
String[] array01;
array01 = new String[10];

方式2:宣言+作成
double[] array02 = new double[6];

方式3:宣言+カスタム初期化
char[] array03 = {
      ' ', ' ', ' ', ' ', ' ', ' ' };

2 D配列:
方法1:宣言+2 D配列の作成(ルール)
int[][] array03 = new int[5][3]; //   5     ,          3
int array04[][] = new int[7][10]; //   7     ,          10
array03[2][1] = 1024; //           : 1024   3        2    

方法2:宣言+2 D配列の作成(不規則)
int[] array05[] = new int[4][];//   4     ,            
array05[0] = new int[5];
array05[1] = new int[2];
array05[2] = new int[7];
array05[3] = new int[9];

方式3:宣言+作成+初期化値
int[][] array06 = {
      {
      1, 3, 5 }, {
      2, 4, 6, 8 }, {
      11, 21, 31, 41, 51 } };

ArraysツールクラスArraysツールクラス:配列の一般的な操作を提供する配列
一般的な方法:1.Arrays.toString():要素を文字列に変換
String[] array01 = {
      "S   ", "B   ", "J   ", "T   ", "C   ","B   " };
String result01 = Arrays.toString(array01);
System.out.println(result01);

出力結果:
[S   , B   , J   , T   , C   , B   ]

2.Arrays.sort():ソート(高速ソートアルゴリズム実装、デフォルト昇順)
int[] array02 = {
      12, 17, 10, 22, 19, 14, 25 };
Arrays.sort(array02);
System.out.println("   :" + Arrays.toString(array02));
Arrays.sort(array01); //     ,          
System.out.println("   :" + Arrays.toString(array01));

出力結果:
   :[10, 12, 14, 17, 19, 22, 25]
   :[B   , B   , C   , J   , S   , T   ]

3.Arrays.binarySearch(配列、指定要素):ソートされた配列に対して、指定要素の検索を行います.
  • 見つかった場合は、要素の位置を返します(ゼロ以上の値)
  • .
  • 見つからない場合は、負の
  • を返します.
    char[] chs = {
          'E', 'B', 'C', 'A', 'D', 'F' };
    		
    System.out.print("   :");
    System.out.println(chs);
    		
    Arrays.sort(chs); //   
    		
    System.out.print("   :");
    System.out.println(chs);
    		
    int index = Arrays.binarySearch(chs, 'X');
    System.out.println("  : " + index);
    

    出力結果:
       :EBCADF
       :ABCDEF
      : -7
    

    4.Arrays.equals(配列1,配列2):2つの配列の内容が一致しているかどうかを比較する
    int[] array01 = {
          1, 3, 5, 7, 9 };
    int[] array02 = {
          1, 3, 5, 7, 9 };
    boolean result2 = Arrays.equals(array01, array02);
    System.out.println(result2);
    

    出力結果:
    true
    

    5.Arrays.fill(配列、カスタムデフォルト要素):カスタム配列のデフォルト要素
    int[] numbers = new int[10];
    Arrays.fill(numbers, -2);//     -2
    System.out.println(Arrays.toString(numbers));
    

    出力結果:
    [-2, -2, -2, -2, -2, -2, -2, -2, -2, -2]
    

    6.Arrays.copyOf(古い配列、レプリケーション要素の個数):配列のすべてまたはローカルレプリケーションを実現
    String[] array01 = {
          "   ", "   ", "   ", "   ", "   ", "   " };
    String[] array03 = Arrays.copyOf(array01, array01.length); //     
    String[] array04 = Arrays.copyOf(array01, 3); //     
    
    System.out.println("[  1]:" + Arrays.toString(array01));
    System.out.println("[  3]:" + Arrays.toString(array03));
    System.out.println("[  4]:" + Arrays.toString(array04));
    

    出力結果:
    [  1]:[   ,    ,    ,    ,    ,    ]
    [  3]:[   ,    ,    ,    ,    ,    ]
    [  4]:[   ,    ,    ]
    

    補足:System.Arraycopy()の役割:配列の全部または局部複製システムを実現する.arraycopy(src, srcPos, dest, destPos, length);//パラメータsrc:旧配列を表す//パラメータsrc Pos:旧配列コピーの開始位置を表す//パラメータdest:新配列を表す//パラメータdestPos:新配列の挿入開始位置を表す
    String[] array05 = new String[array01.length];
    System.arraycopy(array01, 0, array05, 0, array01.length); //     
    
    String[] array06 = new String[array01.length];
    System.arraycopy(array01, 2, array06, 0, 3); //     (   2    3       )
    
    System.out.println("[  5]:" + Arrays.toString(array05));
    System.out.println("[  6]:" + Arrays.toString(array06));
    

    出力結果:
    [  5]:[   ,    ,    ,    ,    ,    ]
    [  6]:[   ,    ,    , null, null, null]
    

    7.Arrays.deepToString(配列):深さループ、2 Dおよび多次元配列を文字列に変換
    int[][] array06 = {
          {
          1, 3, 5 }, {
          2, 4, 6, 8 }, {
          11, 21, 31, 41, 51 } };
    System.out.println(Arrays.deepToString(array06));
    

    出力結果:
    [[1, 3, 5], [2, 4, 6, 8], [11, 21, 31, 41, 51]]