본문 바로가기
프로그래밍 언어/자바의 정석 기초편

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

by life grow 2022. 6. 2.

5-6 배열의 출력

 

int[] iArr = { 100, 95, 80, 70, 60};

배열의 저장된 모든 값들을 출력하려면 어떻게 해야할까?

 

배열 이름으로 출력하는 것은 안된다.

System.out.println(iArr);

[I@2f92e0f4   < 이렇게 나옴

[: 배열 I:int @:위치 2f92e0f4:주소값이라 생각하면 됨   int배열이라는 의미

배열의 주소값은 겹칠 수 없다. 빈 곳에 만들어지기 때문에

 

예외적으로 char[]만 배열 이름을 출력하면

배열에 저장된 내용들이 출력된다.

abcd 이런식으로

 

배열의 모든 요소 출력하려면?

1. for문으로 출력하기

for(int i=0;i<iArr.length;i++) {
System.out.println(iArr[i]);
}

결과: 12345678910

 

2. Arrays클래스로 출력하기

Arrays클래스는 배열을 다루는데 필요한 메서드들을 제공한다.

Arrays.toString:  Arrays클래스에 있는 toString메서드는

배열의 내용을 문자열을 만들어서 반환해준다.  

System.out.println(Arrays.toString(iArr));

결과: [100, 95, 80, 70, 60]

 

Arrays클래스에 빨간밑줄 나오면 import문이 없어서 그런거다.

그럴때 ctrl+shift+o를 눌러주면 된다.

import java.util.Arrays;

public class lnterfaceEx {
	public static void main(String[] args){
		
		int[] iArr = { 100, 95, 80, 70, 60};
		System.out.println(iArr);  //첫번째
		System.out.println(Arrays.toString(iArr));  //두 번째
		for(int i=0;i<iArr.length;i++) {  //세 번째
			System.out.println(iArr[i]);
		}
		
		System.out.println();
		char[] chArr = { 'a', 'b', 'c', 'd'};
		System.out.println(chArr); //네 번째
	}
}
결과
[I@2f92e0f4  //첫번째
[100, 95, 80, 70, 60] //두 번째
100 
95
80
70
60 //세 번째
abcd //네 번째

 

예제 5-1

import java.util.Arrays;

public class lnterfaceEx {
	public static void main(String[] args){
		
		int[] iArr1 = new int[5];
		int[] iArr2 = new int[5];
//		int[] iArr2 = new int[]{100, 95, 80, 70, 60};
		int[] iArr3 = {100, 95, 80, 70, 60};
		char[] ch = new char[] {'a', 'b', 'c', 'd'};
		
		for(int i=0; i<iArr1.length;i++) {
			iArr1[i] = i + 1;
		}
		for(int i=0; i<iArr2.length;i++) {
			iArr2[i] = (int)(Math.random()*10)+1;
		}
		
		for(int i=0;i<iArr1.length;i++) {
			System.out.print(iArr1[i]+",");
		}
		System.out.println();
		
		System.out.println(Arrays.toString(iArr2));
		System.out.println(Arrays.toString(iArr3));
		System.out.println(Arrays.toString(ch));
		System.out.println(iArr1);
		System.out.println(iArr2);
		System.out.println(iArr3);
		System.out.println(ch);
	}
}
/*결과
 1. 1, 2, 3, 4, 5
 2. math.random  0.0<=random<10.0,  1<=random<11
 3. [100, 95, 80, 70, 60]
 4. [a, b, c, d]
 5. [I@5305068a  //@뒤에가 다른걸 보고 서로 다른 배열이구나를 알 수 있다.
 6. [I@1f32e575
 7. [I@279f2327
 8. abcd
 */