JAVA/배열(array)

[JAVA] Arrays.toString

prize1209 2021. 6. 15. 00:23

Arrays.toString

이 메서드는 배열의 모든 요소를 '[첫번째 요소, 두번째 요소, ...] ' 와 같은 형식의 문자열로 만들어서 반환한다. 

 

 

 

만약 iArr의 값을 바로 출력하면?

iArr은 참조변수니까 변수에 저장된 값, 즉 '배열의 주소'가 출력된다.

 

타입@주소 형식으로 출력된다. 

int[] iArr = { 100, 95, 80, 70, 60 }; 
		
		System.out.println(iArr);

[I 는 1차원 int배열이라는 의미이고, '@' 뒤에 나오는 16진수는 배열의 주소인데 실제 주소가 아닌 내부 주소이다.

I ; int타입을 의미
@ 위치를 의미 (주소)

 

*char배열의 경우 예외

 

char 배열은 println 메서드로 출력하면 각 요소가 구분자없이 그대로 출력되는데

이것은 println메서드가 char배열일 때만 이렇게 동작하도록 작성되었기 때문이다. 

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

 

 

예2)

import java.util.*;

public class ArrayEx2 {
	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', 'e' };

		// for문으로 전체 배열 출력
		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);
	}
}