JAVA/java 실습

[자바JAVA] 일차원배열 - 배열대로 출력하는 법 Arrays.toString, 배열의 주소값출력

자바칩 프라푸치노 2020. 9. 27. 07:31

안녕하세요

이번에는 배열의 값들을 배열처럼 출력하기를 배워보겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package sec01_firstArray;
 
import java.util.Arrays;
 
public class Array_Ex3 {
 
    public static void main(String[] args) {
        
        // 스택에 iArr1이라는 참조변수(4byte)가 생성되며, 
        //아울러 new연산에 의해서 힙영역에 10개의 int형태의 방이 만들어진다.
        // 곧, 메모리에 연속적으로 40바이트 할당이 되면서 생성된 주소값이 
        //iArr1에 저장이 되어진다.
        //또한, new에 의해서 생성된 방에 값은 0이라는 기본값으로 셋팅되어진다.
        
        int[] iArr1 = new int[10];
        int[] iArr2 = new int[10];
        
        int[] iArr3 = new int[] {100,95,80,70,60};
        int[] iArr4 = new int[] {100,95,80,70,60};//선언과 동시에 초기화
        
        char[] chArr = new char[] {'a','b','c','d'};
        
        System.out.println("배열 iArr1의 초기화 값");
        System.out.print("[");
         for (int i = 0; i < iArr1.length; i++) {
            if (i==9) {
                System.out.print(iArr1[i] + "]\n");
            }
            else {
                System.out.print(iArr1[i] + ",");
            }
        }
        System.out.println("----------------------");
        
    }
 
    
}
 
cs

 

iArr1 과 iArr2는 int형을 넣을 수 있는 10개의 방이 만들어졌고 다 0으로 초기화 됐습니다.

iArr3과 iArr4는 5개의 방을 만들고 초기화를 하고 있고요

chArr도 4개의 방을 만드는 동시에 초기화를 하고있습니다.

배열처럼 출력하려면 첫번째 방법

for문을 사용하는 방법이 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package sec01_firstArray;
 
import java.util.Arrays;
 
public class Array_Ex3 {
 
    public static void main(String[] args) {
        
        // 스택에 iArr1이라는 참조변수(4byte)가 생성되며, 
        //아울러 new연산에 의해서 힙영역에 10개의 int형태의 방이 만들어진다.
        // 곧, 메모리에 연속적으로 40바이트 할당이 되면서 생성된 주소값이 
        //iArr1에 저장이 되어진다.
        //또한, new에 의해서 생성된 방에 값은 0이라는 기본값으로 셋팅되어진다.
        
        int[] iArr1 = new int[10];
        int[] iArr2 = new int[10];
        
        int[] iArr3 = new int[] {100,95,80,70,60};
        int[] iArr4 = new int[] {100,95,80,70,60};//선언과 동시에 초기화
        
        char[] chArr = new char[] {'a','b','c','d'};
        
        //배열: Array        //배열을 손쉽게 다루기 위해서 JDK에서 제공해주는 클래스 : Arrays클래스
        //Arrays.toString(배열명) -> 배열안에 있는 실제 값을 보기좋게 출력
        System.out.println(Arrays.toString(iArr1));
        System.out.println(Arrays.toString(new int[] {10,20,30})); //새로운 배열이 생성됨. 그것을 출력
        
    }
 
    
}
 
cs

for문을 사용하지 않고 똑같이 출력하는 방법은

Arrays.toString을 사용하는 것입니다.

그러면 

for문을 사용하지 않아도 이렇게 보기좋게 나옵니다.

 

배열의 주소값을 출력하고 싶으면

이렇게 배열 이름을 넣고 출력을 하면 주소값이 출력됩니다.

참조형 변수의 toString은 주소값 출력을 하는 메서드인데

toString은 생략되어있습니다.

 

그런데 char타입만 toString을 호출해야 주소가 나오고

생략하면 실제값이 나옵니다.

728x90