Java

[Java] 배열(Array) 선언 방법 및 예제

배열은 동일한 자료형(Data Type)의 데이터를 연속된 공간에 저장하고 데이터에 접근하기 위한 인덱스(index)를 부여한다.  자바에서 배열을 선언하는 일반적인 형식은 다음과 같다.

자료형[] 변수 = {데이터1, 데이터2, 데이터3, … };

자료형[] 변수 = new 자료형[배열크기];

//배열 선언 2가지 방법 
String[] s;
String s[];

int[] i;
int i[]; 

//배열 생성과 동시에 5개의 주소(인덱스)를 할당하였다.
int[] i = new int[5]; 
String[] s = new String[5]; 


//한주를 배열에 초기화 하는 방법 1
String[] week = {"월", "화", "수", "목", "금", "토", "일"};


//한주를 배열에 초기화 하는 방법 2
String[] week = new String[7];
weeks[0] = "월";
weeks[1] = "화";
weeks[2] = "수";
weeks[3] = "목";
weeks[4] = "금";
weeks[5] = "토";
weeks[6] = "일";

다음 샘플코드를 살펴보자

배열의 값을 월화수목금토일로 초기화 하였다. 배열의 인덱스가 부여되었음으로 접근이 가능하다. 배열의 인덱스는 0부터 시작한다. 총 7개의 문자열이 배열에 할당되었다. 그럼으로 배열의 인덱스 값은 0부터 6까지 이다.

배열에 접근하는 방법은 for문을 사용하거나 직접 인덱스 값으로 접근할 수 있다. 부여되지않은 인덱스값으로 접근할 경우 ArrayIndexOutOfBoundsException 오류가 발생하게됨으로 주의해야한다.

package edu.sample;

public class arrayTest {
	
	public static void main(String[] args) {
		
		String[] week = {"월", "화", "수", "목", "금", "토", "일"};
        
		//for문을 통한 배열 출력
		for (int i=0; i<week.length; i++) {
		    System.out.println(week[i]);
		}
        
		//foreach문을 통한 배열출력
		for(String w:week) {
		    System.out.print(w);
		}
        
	
		System.out.println("배열의 첫번째 값은 : " + week[0]);
		System.out.println("배열의 세번째 값은 : " + week[4]);
		System.out.println("배열의 여섯번째 값은 : " + week[7]); 
	}

}

■출력결과


 

배열은 길이는 고정 되어 있다. 만약 크기를 부여하지 않고 아래와 같이 초기화하면 컴파일 오류가 발생한다.

public class arrayTest {
	
	public static void main(String[] args) {
		
		String[] week = new String[]; 
        
	}
}


배열을 초기화 하는 두번째 방법은 Arrays클래스의 fill()메소드를 사용하는 방법이다. 이때  java.util.Arrays를 임포트 선언하여야 한다. 이클립스를 사용하게되면 선언한 클래스가 없을때 빨간줄로 표기되며, 그 위에 마우스를 올리면 팝업 메뉴가 나타남으로 클릭하여 import 할 수 있다. 또는 단축키를 쓰면 된다. (alt +shift+ o)

package edu.sample;

import java.util.Arrays;

public class arrayTest {
	
	public static void main(String[] args) {
		
		String[] week = new String[3];
		
		//배열의 주소를 모두 같은값으로 초기화
		Arrays.fill(week,"GO");//i_array의 모든 index값을 1로 초기화
		for (int i=0; i<week.length; i++) {
		    System.out.println(week[i]);
		}
        
	}
}

■출력결과


■문자열(String)값을 배열에 한글자씩 할당하기

package edu.sample;

public class arrayTest {
	
	public static void main(String[] args) { 		
		
		String sword = "Hello World";  
		String[] array_sword;  		
		 
		array_sword = sword.split(""); //배열에 한글자씩 할당하기
				
		for(int i=0;i<array_sword.length;i++) {
		    System.out.println(array_sword[i]);
		}
        
	}
}


배열을 사용하면 코드의 양을 많이 줄일 수 있으며, 유지보수가 편하다.

Leave a Reply

error: Content is protected !!