[Java] array.toString()과 Arrays.toString(array)

박채은·2022년 11월 24일
0

배열을 출력하기 위해서, toString()을 아래와 같이 작성하면

array.toString();

항상 Arrays.toString(array)으로 바꾸라는 문구가 뜬다.

array.toString()Arrays.toString(array)의 차이점은 무엇이며, 왜 바꿔야 하는지에 대해서 알아보자.

array.toString()

  • Object 클래스의 메소드
  • array의 내용이 아닌, array의 주소값을 출력한다.
    • "클래스 이름@해시 코드"를 반환
  public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

Arrays.toString(array)

  • Object 클래스의 toString을 오버라이딩한 메소드
  • array 내부의 요소들을 출력해준다.

다른 객체들도 toString을 오버라이딩하여 사용하고 있다.
Interger는 Integer.toString()처럼 쓰진 않지만, Integer 클래스에 선언되어 있다.


즉, 배열의 주소값이 아닌 내부 요소들을 출력하고 싶다면 Object 클래스의 toString()을 오버라이딩한 Arrays.toString을 사용해야 한다!

0개의 댓글