배열에 저장한 값을 출력해서 확인하고 싶은 경우가 있습니다.
print를 사용해 값을 출력하는 경우 대입한 값이 아닌 다른 값이 출력되는 경우를 볼 수 있습니다.
배열에 저장되어 있는 값을 출력하고 싶은 경우 Arrays.toString 또는 Arrays.deepToString을 사용합니다.
- Arrays.toString – 1차원 배열
- Arrays.deepToString – 다차원 배열
Arrays.toString
1차원 배열에 저장되어 있는 값을 출력하는 방법을 알아보겠습니다.
샘플을 먼저 보도록 하겠습니다.
public class SampleProgram
{
public static void main(String[] args) {
int[] arrayOfint = {28,7,68,55,1};
System.out.print(arrayOfint);
}
}
결과
[I@4dc63996
결과를 보면 배열에 대입한 값이 아닌 다른 값이 출력된 것을 알 수 있습니다.
이유는 배열에 값을 대입하게 되면 배열 변수에는 배열의 참조값이 저장이 됩니다.
배열 변수에 저장되어 있는 요소 값을 출력하고 싶은 경우에는 Arrays.toString를 사용합니다.
Arrays.toString를 사용해 배열에 저장되어 있는 값을 출력해 보도록 하겠습니다.
import java.util.Arrays;
public class SampleProgram
{
public static void main(String[] args) {
int[] arrayOfint = {28,7,68,55,1};
System.out.print(Arrays.toString(arrayOfint));
}
}
결과
[28, 7, 68, 55, 1]
배열 변수에 저장한 값이 출력되었습니다.
샘플에서는 int형 배열을 확인했습니다.
string형 배열도 사용 방법을 동일합니다.
import java.util.Arrays;
public class Program
{
public static void main(String[] args) {
String[] arrayOfstring = {"One", "Two", "Three", "four", "Five"};
System.out.println(arrayOfstring);
System.out.println(Arrays.toString(arrayOfstring));
}
}
결과
[Ljava.lang.String;@4dc63996
[One, Two, Three, four, Five]
Arrays.deepToString
다차원 배열인 경우에 Arrays.toString를 사용해 출력하는 경우 원하는 저장되어 있는 값이 출력되지 않습니다.
import java.util.Arrays;
public class SampleProgram
{
public static void main(String[] args) {
int[][] arrayOfint = {{28,7},{68,55}};
System.out.println(arrayOfint);
System.out.println(Arrays.toString(arrayOfint));
}
}
결과
[[I@4dc63996
[[I@d716361, [I@6ff3c5b5]
다차원 배열의 출력된 결과를 보면 배열 변수에 저장되어 있는 값은 출력되지 않았습니다.
다차원 배열의 경우에는 deepToString을 사용해 값을 출력할 수 있습니다.
import java.util.Arrays;
public class SampleProgram
{
public static void main(String[] args) {
int[][] arrayOfint = {{28,7},{68,55}};
System.out.println(Arrays.deepToString(arrayOfint));
}
}
결과
[[28, 7], [68, 55]]
다차원 배열의 경우에도 저장되어 있는 모든 값이 출력되었습니다.
주의점으로는 1차원 배열에 deepToString를 사용하는 경우에는 에러가 발생할 수 있습니다.
배열의 종류에 맞게 사용해야 합니다.
댓글