본문 바로가기
JAVA/개념정리

[JAVA] Array

by JJH0100 2022. 10. 5.
728x90
반응형

배열이란, 같은 형의 데이터를 하나의 자료구조에 저장할 수 있게 만든 것이다. 같은 형의 데이터를 여러 개 사용할 때 많은 변수를 사용하기 보다는 배열을 사용하는 것이 효율적이다.

배열은 기본 자료형이 아니라 참조 자료형이다
배열 각각의 요소는 기본 자료형, 참조 자료형 모두 가능하다

 

배열의 초기화

배열의 초기화란, 처음 생성된 배열에 데이터를 저장하는 과정이다.
변수와 달리 배열은 초기화 하지 않아도 사용이 가능하다 (오류 발생 안함)

배열이 초기화 되지 않을 경우에는 묵시적인 값으로 자동 설정된다.

public static void main(String[] args) {
    int id[] = new int[5];
    
    System.out.println(id[0]);
    System.out.println(id[1]);
    System.out.println(id[2]);
    System.out.println(id[3]);
    System.out.println(id[4]);
}

배열이 초기화 되지 않을 경우 가지는 묵시적인 값

묵시적 값
byte, short, int, long 0
float, double 0.0
char 공백 문자
boolean false
참조 자료형 null

 

 

length

배열의 길이를 나타내는 속성.

dnum[] 배열을 생성 후 dnum.length를 쓰면 배열의 길이를 알 수 있다.

length를 활용하여 데이터를 입력받고 확인해보자

package Arrays;

import java.util.Scanner;

public class ArrayTest1 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int i;
		double sum=0.0, avg;
		double dnum[] = new double[5];
		
		System.out.println("dnum의 배열 길이는 : " + dnum.length);
		System.out.print("초기화 하지 않은 dum의 값은 : ");

		for(i=0; i<5; i++) {
			System.out.print(dnum[i] + ", ");
		}
		System.out.println();		
		
		// 5개의 데이터를 입력
		for(i=0; i<dnum.length; i++) {
			System.out.println("dnum[" + i + "] 번째 데이터 입력 : ");
			dnum[i] = sc.nextDouble();
		}
		
		// 입력받은 데이터를 확인
		System.out.println("값을 입력 하려 놓은 dnum의 값은 : ");
		for(i=0; i<dnum.length; i++) {
			System.out.print(dnum[i] + " : ");
		}
		System.out.println();
		
		//입력받은 값의 합과 평균 구하기
		for(i=0; i<dnum.length; i++) {
			sum = sum + dnum[i]; // sum += dnum[i]
		}
		System.out.println("배열의 합은 : " + sum);
		System.out.println("배열의 평균은 : " + sum/dnum.length);
		
	}

}

 

 

향상된 For문

자바1.7 이상부터 지원한다.

보통 For문은 다음과 같이 적는데

for(int a=0; a<score.length; a++) {
    System.out.print(score[a] + " : ");
}

다음과 같이 간결하게 적을 수 있다.

for(int a:score) {
    System.out.print(a + " : ");
}

 

EX)

public class Ex02 {
	public static void main(String[] args) {
		int score[] = {40,56,34,5,66,88};		
		for(int a:score) {
			System.out.print(a + " : ");
		}
	}
}

728x90
반응형

'JAVA > 개념정리' 카테고리의 다른 글

[Java] System.arraycopy  (0) 2022.10.06
[JAVA] Array의 활용  (0) 2022.10.05
[JAVA] 클래스와 메소드  (0) 2022.10.04
[JAVA] IF문의 활용  (2) 2022.09.16
[JAVA] 연산자(operator)  (0) 2022.09.16

댓글