어제 오늘 내일

[Java] 2차원 배열 값 출력하는 2가지 방법 (반복문, Arrays 클래스) 본문

IT/Java

[Java] 2차원 배열 값 출력하는 2가지 방법 (반복문, Arrays 클래스)

hi.anna 2021. 4. 16. 11:18

 

지난번에는 1차원 배열의 값을 출력하는 2가지 방법을 알아보았습니다.

[Java] 배열 값 출력하는 2가지 방법 (반복문, Arrays.toString())

 

이번에는 2차원 배열의 값을 출력하는 2가지 방법을 알아보도록 하겠습니다.

 

먼저, Arrays.toString() 메소드를 이용하여, 2차원 배열을 출력해 볼까요?

 코드 

import java.util.Arrays;

public class PrintArray {
    public static void main(String[] args) {
        int[][] arr = { { 1, 2 }, { 3, 4 }, { 5, 6, 7 } };

        System.out.println(Arrays.toString(arr));
    }
}

 

 결과 

[[I@762efe5d, [I@5d22bbb7, [I@41a4555e]

arr는 2차원 배열로,

배열 안에 또다른 배열을 가지고 있는 형태입니다.

따라서, 2차원 배열을 Arrays.toString() 함수를 이용하여 출력하면,

배열 안에 있는 배열을 가리키는 주소값이 차례로 출력됩니다.

 

즉, 위 예제에서 차례로 출력된 값은 각각

[1, 2] 배열을 가리키는 주소값,

[3, 4] 배열을 가리키는 주소값,

[5, 6, 7] 배열을 가리키는 주소값을 의미합니다.

 

따라서, 2차원 배열의 값을 출력하기 위해서는 

반복문 또는 Arrays.deepToString() 메소드를 사용해야 합니다.

 

 

Solution 1. 반복문 이용하기

 코드 

public class PrintArray {
    public static void main(String[] args) {
        int[][] arr = { { 1, 2 }, { 3, 4 }, { 5, 6, 7 } };

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

 

 결과 

1 2 
3 4
5 6 7

2차원 배열의 값을 하나씩 꺼내기 위해서 

2중 for문을 사용하였습니다.

 

 

Solution 2. java.util.Arrays.deepToString() 이용하기

java.util.Arrays.deepToString() 메소드를 이용하면

반복문을 사용하는 것보다 좀 더 쉽게 

2차원 배열의 값을 문자열로 출력할 수 있습니다.

 

 코드 

import java.util.Arrays;

public class PrintArray {
    public static void main(String[] args) {
        int[][] arr = { { 1, 2 }, { 3, 4 }, { 5, 6, 7 } };

        System.out.println(Arrays.deepToString(arr));
    }
}

 

 결과 

[[1, 2], [3, 4], [5, 6, 7]]

위 예제와 같이 Arrays.deepToString() 메소드를 이용하면

간단하게 2차원 배열의 값을 문자열로 반환받아서 출력할 수 있습니다.

 

 

그리고. 다차원 배열 출력하기

 코드 

import java.util.Arrays;

public class PrintArray {
    public static void main(String[] args) {
        int[][][] arr = { { { 1 }, { 2, 3 } }, { { 4, 5 }, { 6, 7 } } };

        System.out.println(Arrays.deepToString(arr));
    }
}

 

 결과 

[[[1], [2, 3]], [[4, 5], [6, 7]]]

Arrays.deepToString() 메소드를 이용하면

2차원 배열 뿐만 아니라

다차원 배열의 값도 문자열로 리턴받아

쉽게 출력할 수 있습니다.

 

 

 

반응형
Comments