반응형

배열의 출력

int[] iArr = {100, 95, 80, 70, 60};

iArr[] length = 5이다.
이 배열의 모든 값을 출력하려면 어떻게 하면 될까?

System.out.println(iArr);		// [I@14318bb와 같은 형식의 문자열이 출력된다.

이 문장을 실행하면, iARR에 저장된 모든 값이 출력되면 좋겠지만 그렇지 않다.
[I@14318bb와 같은 형식의 문자열이 출력되는데,

[I의 뜻은 integer타입의 배열을 의미한다.
@는 주소를 의미한다.(정확하게 주소는 아닌데 주소라고 이해하고 넘어가면 된다.)

아무튼, 이런 값이 나오는데, 이런값이 왜 나오는지는 나중에 공부할 9장에서 공부하도록 하자.

근데 예외가 있다.

char[] chArr = {'a', 'b', 'c', 'd'};
System.out.println(chArr);		// abcd가 출력된다.

char[] 타입의 배열일 때는, System.out.println(chArr)처럼 배열의 이름을 출력하면 배열에 저장된 내용이 출력된다.

이런 경우를 제외하고는, 배열의 모든 요소를 출력하기 위해서는 for문을 이용해서 출력해야한다.

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

조건식의 부등호는 <=가 아니라 < 다 왜냐하면 iArr의 길이는 1부터 재기때문에 5이지만, 인덱스 범위는 0~4이기 때문이다.

이 방법 말고도 조금더 간편한 방법이 있는데,

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

Arrays라는 클래스를 이용하는 것인데, 
Arrays클래스는 배열을 다루는데 필요한 메서드들을 제공한다.
이걸 이용하면 배열에 있는 내용들을 쉽게 출력할 수 있다.

Arrays 클래스에 있는 toString메서드를 이용해서 배열이름을 넣어주면, 
배열의 내용을 문자열로 만들어서 반환해준다. "[100, 95, 08, 70, 60]" 이런식으로 말이다.

결국 println은 문자열을 출력해서 [100, 95, 80, 70, 60]이 출력된다.

반응형

'JAVA' 카테고리의 다른 글

배열의 활용(3)~(4)  (0) 2022.03.22
배열의 활용(1)~(2)  (0) 2022.03.22
배열의 길이, 배열의 초기화  (0) 2022.03.22
배열의 생성과 선언, 배열의 인덱스  (0) 2022.03.21
break문, continue문, 이름붙은 반복문  (0) 2022.03.20