[Java] Arrays.toString()
배열 값 출력하는 2가지 방법 / toString()
배열 출력
public class PrintArray {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
System.out.println(arr);
}
}
// 결과 : [I@762efe5d
출력 값이 이상한 이유는
[1,2,3,4,5] 값이 들어있는 메모리의 주소값이 출력되기 때문이다.
1. 반복문 사용
public class PrintArray {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
// 결과 :
// 1
// 2
// 3
// 4
// 5
배열의 각 index값을 읽어서 값을 출력.
2. toString() 메소드 사용
import java.util.Arrays;
public class PrintArray {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
System.out.println(Arrays.toString(arr));
}
}
// 결과 : [1, 2, 3, 4, 5]
배열에 정의된 값들을 문자열 형태로 만들어서 리턴.
toString()
문자열을 출력할 때, 변수에 문자열을 할당할 때 사용.
java.lang
패키지의 Object
클래스의 toString
메소드의 구현을 살펴보면 아래와 같다.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
toString
메소드는 클래스이름@16진수로_표시된_해시코드
형태의 문자열을 반환한다.
class People {
final String name;
final int age;
People(String name, int age) {
this.name = name;
this.age = age;
}
}
People people = new People("demuu", 10);
System.out.println(people.toString()); // toString() 을 생략해도 된다.
// 출력값 : aTest.Test$1People@7a79be86
toString 은 디버깅을 위해 설계된 메서드이다.
어떤 문제가 발생한 클래스가 toString이 잘 구현된 클래스일 경우 스스로를 완벽히 설명하는 문자열이 로깅될 것이고, 그렇지 않을 때 보다 원인을 발견하기 쉬워진다.
댓글남기기