[java]配列


Javaを勉強しながら復習や勉強をした内容を記録するためにブログを始めました文章に間違いがあったら、フィードバックしてください!


シナリオ:


Javaの配列は、同じデータ型のメモリに線形データ構造で連続的に格納され、変数として管理されるデータ構造です.

Javaで配列を宣言する

int[] arr; or int arr[]; // 크기 할당과 초기화 없이 참조 변수 만 선언 

int[] arr = {1,2,3,4,5}; // 크기와 초기화를 한번에 선언
まず一番前に資料型を決める[]例ではint整数として指定しますが、long、String、double、floatなどの他のデータ型が表示される場合があります.次に、配列の名前を指定します.(配列内の[]カッコは、配列名の前にも配列名の後ろにも表示されます.)

アレイの作成

arr = new int[5];  //초기화 없이 크기만 지정(c언어에서는 초기화를 하지 않으면 메모리 안에 
                  //쓰레기 값이 들어가지만 자바에서는 자동으로 0으로 초기화 됩니다.

int[] arr = new int[5]; // 선언과 생성을 한번에 할 수 있습니다.

[図に示すように、メモリに5バイトの容量があることがわかります(配列は0から始まります).
配列の作成は、まずnew演算子によってメモリに空間を割り当てます.
次に、データ型のインデックス(メモリサイズ)を指定し、インデックスサイズと同じメモリをメモリに割り当てることができます.
new演算子は、オブジェクトに空間を割り当てて、参照値をheap領域に戻す役割を果たします.つまり、空間を創造する役割と見なすことができます.

イニシアチブの初期化

arr[0] =;
arr[1] =;
arr[2] =;
arr[3] =;
arr[4] =;
アレイを宣言して作成すると、アレイのスペースに値を1つだけ配置できます.
ただし、上記の例に示すように、初期化する値を知っている場合は、次のことを宣言できます.
int[] arr = {,,,,}; //배열 크기와 값을 한번에 초기화해 줄수 있습니다.

//tip! arr에 값을 넣어 준 후 값을 아래와 같이 초기화 해주면 오류가 발생합니다.
arr = {,,,,}; 

tip!

int[] arr = new int[5];
arr = new int[5];

  • 2つのアドレス値が異なる.

  • 前述したように、宣言された場合、1番目の指向性メモリアドレスが削除され、2番目の指向性メモリアドレスが削除されます.
  • アレイ出力

    System.out.println(arr); //1번
    System.out.println(arr[index]); //2번
    1番のようにarrを出力したらどうなりますか?arrを出力するとarrにメモリアドレス値が出力されます.配列はメモリ構造であるためです.メモリはアドレスで構成され、メモリアドレスには目的の値が含まれています.
    2番目のようにarr[index]を出力すれば、必要な位置で値を出力できます.
    //예시
    int[] arr = { 1, 2, 3, 4, 5 }; // 배열 초기화
    
    		System.out.println("arr : " + arr);
    		System.out.println("arr[3] : " + arr[3]);

    <例>配列とrandom関数を使用して配列内の最小値を検索する問題
    import java.util.Arrays;
    
    public class ArrayTest {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		int[] arrMin = new int[10]; // Min 배열 초기화
    		int min = 51; // min에 random함수 보다 큰 값을 초기화 합니다. 그이유는 min이 random 함수 보다 큰값으로 시작해서 가장 
                            //작은 값으로 값이 바뀌여야 되기 때문입니다.
    					
    		for (int i = 0; i < arrMin.length; i++) { // arrMin.length는 배열의 길이를 알고자 할 때 사용합니다.
    													// 배열.length는 0부터 시작이 아닌 1부터 시작이기 때문에 만약
                                                        // new int[10]으로 배열을 생성 했으면 length에 값은 10이 됩니다.
    													//즉 우리는 i를 0으로 초기화 했기 때문에 i < arrMin.length로
    													// 10 이기 전에 반복문을 빠져 나가야 합니다.
    
    			arrMin[i] = (int) (Math.random() * 50) + 1; // 1 ~ 50까지 무작위 수를 arrMin에 대입;
    
    			if (arrMin[i] < min) { // 만약 arrMin[i]이 min보다 작을 경우 min에 arrMin[i]값으로 바꿉니다.(min이 최소값을 찾을 때 까지 반복)
    				min = min = arrMin[i];
    			}
    
    		}
    		System.out.println("arrMin : " + Arrays.toString(arrMin)); // java.util 패키지에 Arrays.toString()을 사용하면
    																	// 반복문 없이 배열을 문자열로 출력 할 수 있습니다.
    
    		System.out.println("최소값 : " + min); // arrMin배열 안에 찾은 최소값 출력
    
    	}
    
    }