[Java] Chapter 13. 整列


📌13-1. 1 Dアレイの理解と活用


≪1 Dアレイ|1 D Array|oem_src≫:同じタイプのデータを複数格納する1 D構造のメモリ領域.
アレイに格納されたデータは、メモリに連続して配置されます.
int[] ref = new int[5];
まず、左側int[] refの結果に基づいて、int型変数からなる配列を参照する参照変数を作成する.
右側のnew int[5]により、5つのint型変数に空間を持つ配列インスタンスを作成します.すなわち,配列もインスタンスとして作成されるため,いくつかの方法がある.
したがって、refは、配列インスタンスを指す参照変数である.
参照変数の宣言と配列インスタンスの宣言は別々なので、必ずしも1行書く必要はありません.
int[] arr1 = new int[5];

int[] arr2;
arr2 = new int [3];
配列には、基本データ型だけでなく、定義したクラスのインスタンスも含まれます.正確には、アレイには各インスタンスの参照値が含まれます.
class Box {...}

Box[] arr = new Box[5];
配列内の各要素にアクセスする場合は、インデックスに基づいてアクセスできます.
int[] arr = new int[3];

arr[0] = 7;
arr[1] = 8;
arr[2] = 9;
上記のコードを生成しながら初期化することができる.
int[] arr = {7, 8, 9};
配列を使用する大きな理由は、配列の利点でもあり、文を繰り返して順番にアクセスできることです.
配列内の参照変数は、メソッドによって伝達されてもよいし、1つのクラスだけでなくメソッドから受信されてもよい.
// 매개변수로 배열 참조 변수 선언
static int sumOfAry(int[] arr) {...}

// 메소드의 배열 참조값 반환
static int[] makeNewIntAry(int len) {...}
デフォルトのデータ構造では、すべての要素が0にリセットされます.
インスタンス配列は、すべての要素をnullに初期化します.
配列の初期化方法を使用して、必要な値に初期化できます.
// java.util.Arrays 클래스에 정의

// arr 배열의 요소를 7로 초기화
Array.fill(arr, 7)

// arr 배열의 idx 3부터 4까지 7로 초기화
Array.fill(arr, 3, 5, 7)
1つのアレイから別のアレイにコピーすることもできます.
// java.lang.System 클래스에 정의

// arr1의 idx 0부터 4개의 값을 arr2의 idx 3에 복사
System.arraycopy(arr1, 0, arr2, 3, 4)
mainメソッドの宣言では、パラメータはString[]です.
これは、Stringインスタンスからなる配列が、先に学習したようにパラメータとして使用されることを意味する.
実際には、javaファイルをコマンドプロンプトで実行するときに表示できます.
class Simple {
    public static void main(String[] args) {
        for(int i=0; i<args.length; i++) 
            System.out.println(args[i]);
    }
}

📌13-2. 強化されたfor文(for-each文)


繰り返し文は配列を使用するときに頻繁に使用されます.しかし、私たちがこれまで使ってきたfor文を使うのは、毎回面倒なので、並べ替えのために新しい重複文を作成しました.
int[] arr = {1, 2, 3, 4, 5}

// 기존의 for문
for(int i=0; i<arr.length; i++) {
    System.out.println(arr[i]);
}

// for-each문
for(int e : arr) {
    System.out.println(e);
}
これにより、配列の長さや要素に関心を持つことなく、コード量を減らすことができます.
逆に、for-each文のデータ型は、配列要素のデータ型と一致する必要があります.

📌13-3. 多次元配列の理解と利用


我々が主に議論する配列は1次元であり,たまに2次元と非常にたまに3次元に関連する.


2 D配列は独立した1 D配列の集合であるため、上記のようなすべての配列の長さが同じである必要はありません.
また、配列もインスタンスであることを忘れないでください.

🔗カリキュラムとリソースソース


Naver Cafe|尹聖祐のプログラミング学習グループ