관리 메뉴

나구리의 개발공부기록

자바의 정석 기초편 ch5 - 6 ~ 7 [배열의 출력] 본문

유튜브 공부/JAVA의 정석 기초편(유튜브)

자바의 정석 기초편 ch5 - 6 ~ 7 [배열의 출력]

소소한나구리 2023. 11. 9. 15:09

1) 배열출력

(1) 배열 변수를 그냥 출력

  • 배열변수를 print문으로 그냥 출력해버리면 값이 출력되는 것이 아니라 참조값(주소값)이 출력됨
  • 예외적으로 char타입의 배열은 참조변수를 print문으로 출력하더라도 값이 출력되도록 설계되어 있는데, Java 언어 설계시 문자열과 char 배열을 쉽게 다룰 수 있도록 의도적으로 이렇게 설계되어있음
  • String 타입의 변수도 print문으로 출력하면 참조값이 아닌 저장된 값이 출력됨
System.out.println(iArr)
// [I@19234921와 같은 형식의 문자열이 출력 되면서 배열이 출력 안됨

// 예외적으로 char타입의 배열만 위의 방식으로 출력이 됨.
char[] chArr = {'a', 'b', 'c', 'd' };
System.out.println(chArr);     // abcd가 출력됨

 

(2) 반복문을 이용한 출력

  • char타입 배열이 아닌 다른 타입의 배열은 이렇게 반복문을 이용하여 인덱스를 지정하여 하나씩 출력하는 것이 가장 원시적인 방법임
for (int i=0; i<iArr.length; i++)  // for문을 이용하여 배열의 요소를 순서대로 하나씩 출력
System.out.println(iArr[i]);

 

(3) Arrays.toString()를 이용한 출력

  • Arrays 클래스의 toString() 메서드를 이용하여 argument로 배열변수를 입력하면 참조값이 아닌 저장된 실제 값을 출력할 수 있음
  • Arrays 클래스의 import문 작성이 필요하며 수동으로 import를 입력하고자 하는 경우 이클립스는 커맨드 + 쉬프트 + o, 인텔리제이는 옵션 + 엔터로 import를 할 수 있고 설정에 따라 자동으로 import가 되도록 할 수 있음
System.out.println(Arrays.toString(iArr));  // 가장 많이 사용함
// Arrays클래스의 toString 메소드를 활용해서 배열을 문자열로 변경 후 출력

import java.util.Arrays; // 임포트 문이 자동으로 생성 됨(없이 실행하면 에러발생)
자동으로 작성 되지만 자동으로 작성이 안된다면 수동으로 맨 위에 작성해야함
이클립스 단축키 : 커맨드 + 쉬프트 + O

 

(4) 예제1

  • 배열변수를 그냥 출력하면 참조값이 출력됨
  • for문과 Arrays를 활용하면 값을 출력할 수 있음
public static void main(String[] args) {
	int[] iArr = {100, 95, 80, 70, 60}; //길이가 5인 int 배열
	System.out.println(iArr); // 그냥 출력
// 출력결과
[I@7ad041f3 

	for (int i=0; i<iArr.length; i++) {
		System.out.println(iArr[i]);	// 반복문을 활용하여 출력
// 출력결과 
100
95
80
70
60

import java.util.Arrays; // import문 생성

public class ex5_intro3 {
	public static void main(String[] args) {
		int[] iArr = {100, 95, 80, 70, 60}; //길이가 5인 int 배열
        System.out.println(Arrays.toString(iArr)); // Arrays.toString 활용하여 출력
	}
}
// 출력결과
[100, 95, 80, 70, 60]

 

(5) 예제2

  • 배열 초기화와 여러가지 출력 방법
import java.util.Arrays;

public class ex5_1 {

	public static void main(String[] args) {
		int[] iArr1 = new int[10];
		int[] iArr2 = new int[10];
		int[] iArr3 = {100, 95, 80, 70, 60};
		char[] chArr = {'a', 'b', 'c', 'd'};
		
		// 1 ~ 10의 숫자를 순서대로 배열에 저장
		for (int i=0; i < iArr1.length; i++) {
			iArr1[i] = i + 1;
		}
		
		// 1 ~ 10의 랜덤값을 배열에 저장
		for (int i=0; i < iArr2.length; i++) {
			iArr2[i] = (int)(Math.random()*10);
		}
		
		// for문을 이용해 iArr1의 배열에 저장된 값을 출력
		for (int i=0; i < iArr1.length; i++) {
			System.out.print(iArr1[i]+",");
		}
        
		// Arrays.toString을 활용한 출력
		System.out.println(Arrays.toString(iArr2));
		System.out.println(Arrays.toString(iArr3));
		System.out.println(Arrays.toString(chArr));
        
		// 배열을 그냥 출력하면 참조값이 출력됨
		System.out.println(iArr3);
        
		// char타입 배열은 print문으로 출력해도 값이 출력됨
		System.out.println(chArr);
	}
}


출력값
1,2,3,4,5,6,7,8,9,10,
[3, 5, 6, 6, 0, 9, 7, 9, 3, 4]
[100, 95, 80, 70, 60]
[a, b, c, d]
[I@18b4aac2
abcd

 

** 출처 : 남궁성의 정석코딩_자바의정석_기초편 유튜브 강의