지우의 우당탕탕 개발일지

Java 배열(2) : 배열의 길이, 배열의 초기화, 배열의 출력 본문

언어/Java

Java 배열(2) : 배열의 길이, 배열의 초기화, 배열의 출력

erase-jeong 2024. 9. 11. 17:12
int[] score;
score={50,60,70,80,90}; //에러. new int[]를 생략할 수 없음
score=new int[]{50,60,70,80,90}; //OK

1. 배열의 길이

  • 배열이름.length : 배열의 길이 (int형 상수)
int arr=new int[5]; //길이가 5인 int배열
int tmp=arr.length; //arr.length의 값은 5이고 tmp에 5가 저장된다.

 

  • 배열은 한번 생성하면 (실행동안) 그 길이를 바꿀 수 없다
int[] score=new int[6];

for(int i=0;i<6;i++){
	System.out.println(score[i]);
}

 

int[] score=new int[5]; //배열의 길이를 6에서 5로 변경

for(int i=0;i<score.length;i++){ //조건식을 변경하지 않아도 됨
	System.out.println(score[i]); 
}

 

 

<예제>

public class Ex5_1_tmp {
    public static void main(String[] args){
        int[] arr=new int[10];
        System.out.println("arr.length="+arr.length);

        for(int i=0;i<10;i++){  //for(int i=0;i<arr.length;i++){
            System.out.println("arr["+i+"]="+arr[i]);
        }

    }
}

 


 

2. 배열의 초기화

- 배열의 각 요소에 처음으로 값을 저장하는 것

- 자동초기화  int 0

 

(1) 각 요소에 직접 값 저장

int[] score=new int[5]; //길이가 5인 int형 배열을 생성한다.
score[0]=50; //각 요소에 직접 값을 저장한다.
score[1]=60;
score[2]=70;
score[3]=80;
score[4]=90;

 

(2)  for 문으로 초기화

int[] score=new int[5];

for(int i=0;i<score.length;i++)
	score[i]=i*10+50;

 

 

(3) 생성과 동시에 초기화

int[] score=new int[]{50,60,70,80,90};
int[] score={50,60,70,80,90}; //new int[]를 생략할 수 있음 <-- 99% 이걸로 쓰임

 

 

(4) 나눠서

  • 에러 (안됨)
int[] score;
score={50,60,70,80,90}; //에러. new int[]를 생략할 수 없음

 

  • 성공 (가능)
int[] score;
score=new int[]{50,60,70,80,90};

 

나눠서 할 경우에는 'new int[ ]' 를 생략할 수 없다.

 


 

3. 배열의 출력

1. 배열을 출력하면 배열의 가리키는 참조변수 의 값을 출력한다.

int[] iArr={100,95,80,70,60};
//배열을 가리키는 참조변수 iArr의 값을 출력한다.
System.out.println(iArr);  //[I@14318bb 와 같은 형식의 문자열이 출력된다.

 

2. iArr[i] 출력하기

for(int i=0;i<iArr.length;i++){ //배열의 요소를 순서대로 하나씩 출력
	System.out.println(iArr[i]);
}

 

3. 배열 iArr 의 모든 요소를 출력한다. [100, 95, 80, 70, 60] 이 출력된다.

System.out.println(Arrays.toString(iArr));

 

 


 

 

[코드 1] 배열 출력하기

public class Ex5 {
    public static void main(String[] args){
        int[] iArr={100,95,80,70,60};
        System.out.println(iArr);
    }
}

 

<출력>

 

 

 

 

[코드 2] 각 배열의 인덱스 출력하기 (for문 이용)

public class Ex5 {
    public static void main(String[] args){
        int[] iArr={100,95,80,70,60};
        for(int i=0;i<iArr.length;i++){
            System.out.println(iArr[i]);
        }
    }
}

 

 

 

 

[코드 3]  for문과  Arrays.toString 으로 출력하기

import java.util.Arrays;

public class Ex5 {
    public static void main(String[] args){
        int[] iArr={100,95,80,70,60};
        for(int i=0;i<iArr.length;i++){
            System.out.println(iArr[i]);
        }
        
        System.out.println(Arrays.toString(iArr));
    }
}

 

 


import java.util.Arrays;

public class Ex5 {
    public static void main(String[] args){
        int[] iArr1=new int[10];
        int[] iArr2=new int[10];
        //int[] iArr3=new int[]{100,95,80,70,60};
        int[] iArr3={100,95,80,70,60};
        char[] chArr={'a','b','c','d'};

        for(int i=0;i<iArr1.length;i++){
            iArr1[i]=i+1; //1 ~ 10 의 숫자를 순서대로 배열에 넣는다.
        }

        for(int i=0;i<iArr2.length;i++){
            iArr2[i]=(int)(Math.random()*10)+1; //1~10의 값을 배열에 저장
        }

        //배열에 저장된 값들을 출력한다.
        for(int i=0;i<iArr1.length;i++){
            System.out.print(iArr1[i]+",");
        }
        System.out.println();

        System.out.println(Arrays.toString(iArr2));
        System.out.println(Arrays.toString(iArr3));
        System.out.println(Arrays.toString(chArr));
        System.out.println(iArr3);
        System.out.println(chArr);
    }
}