221114 배열(array)

니바지·2022년 11월 14일
0

배열은 Java를 다루는 것 뿐만 아니라, 다른 프로그래밍 언어에서도 아주 중요시 다루어지는 요소이다.
이 글을 통해 배열에 대한 이모저모를 복습하고, 개념을 확실히 하는 시간을 가져볼 것이다!!

배가 열 개면... 배...열?
...
이런거 하지 말까요
하하하 ^^


배열(Array)

배열(array)같은 타입의 변수들로 이루어진 유한 집합으로,
동일한 자료형(Data Type)의 데이터를 연속된 공간에 저장하기 위한 자료구조이다.
즉, 연관된 데이터를 그룹화하면 묶어주는 것...!

배열의 장점

배열은 같은 구조의 데이터를 많이 다뤄야하는 경우에 사용할 수 있는 가장 기본적인 자료 구조로, 연관된 데이터를 저장하기 위한 변수의 선언을 줄여주며, 반복문 등을 이용하여 계산과 같은 과정을 쉽게 처리할 수 있다.

배열의 구조 및 특징

  • 배열을 구성하는 각각의 값배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자인덱스(index)라고 한다.

  • 자바에서 인덱스언제나 0부터 시작하며, 0을 포함한 양의 정수만을 가질 수 있다.

  • 배열은 선언되는 형식에 따라 1차원 배열, 2차원 배열뿐만 아니라 그 이상의 다차원 배열로도 선언할 수 있다. 하지만 현실적으로 이해하기가 쉬운 2차원 배열까지가 많이 사용되는 편이다.

이 글에서는 1차원 배열을 중점으로 다루고, 다음에 기회가 되면 2차원 배열을 다뤄볼 예정이다.😉

배열 선언

기본적으로 1차원 배열은 다음과 같은 문법에 따라 선언한다.

1. 타입[] 배열이름; //이 방식이 주로 쓰임
2. 타입 배열이름[];

또한, 위와 같이 선언된 배열은 new 키워드를 사용하여 실제 배열로 생성할 수 있다.

배열이름 = new 타입[배열 길이];

다음과 같이 배열의 선언과 생성을 동시에 할 수도 있다는 것을 알아두자!

타입[] 배열이름 = new 타입[배열길이];

배열의 초기화

자바에서는 변수와 마찬가지로, 배열도 선언과 동시에 초기화를 할 수 있다.
이 방법은 데이터들의 값을 알고 있을 때 사용하면 편리하다!

  1. 자료형[] 변수 = {데이터1, 데이터2, 데이터3 ...}
  2. 타입[] 배열이름 = new타입[]{배열요소1, 배열요소2, ...}

인덱스를 이용하여 배열을 초기화하고, 선언한 인덱스에 맞는 자리에 값을 집어넣을 수도 있다.

배열이름[] = 배열요소


int[] grade1 = new int[3] //길이가 3인 int형 배열의 선언 및 생성
int[] grade2 = new int[3] //길이가 3인 int형 배열의 선언 및 생성

grade1[0] = 85; //인덱스를 이용한 배열의 초기화
grade1[1] = 65;
grade1[2] = 90;

grade2[0] = 85; //배열의 길이보다 적은 수의 배열 요소만 초기화

for(int i = 0; i < grade1.length; i++){
System.out.println(grade1[i] + " " )
}; //인덱스를 이용한 배열로의 접근

for(int i = 0; i < grade2.length; i++){
System.out.println(grade2[i] + " " )
}; //인덱스를 이용한 배열로의 접근

예제 실행 결과는 다음과 같다.

85
65
90
85
0
0

grade2에 비어있는 [1],[2]번 배열은 배열 요소가 초기화되지 않았기에, 자동으로 0이 출력되게 된다!

이런 식으로 String 값을 넣을 수도 있다.

public class Array01 {
	public static void main(String[] args) {
		String[] dessert = {"Jelly", "Cake", "Chocolate", "Pudding", "Bread"};
		    // 인덱스 번호 :   0  ,    1   ,   2   ,     3      ,     4
		System.out.println(dessert[0]); // Jelly
		System.out.println(dessert[1]); // Cake
		System.out.println(dessert[2]); // Chocolate
		System.out.println(dessert[3]); // Pudding
		System.out.println(dessert[4]); // Bread
	}
}

배열의 길이

위의 예제에서 이미 다뤄버렸지만, 배열의 길이와 이를 활용하여 for문을 사용하는 것은 정말 중요하니 짚고 넘어가겠다!

배열은 보통 for문과 함께 사용된다. for문에 배열이 사용될 경우, 배열의 길이만큼 for문을 돌리는 것이 중요한데 배열의 길이는 다음과 같이 length를 이용하여 구한다.

다음 예제는 week의 배열을 순서대로 출력한다.

String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
for (int i=0; i<weeks.length; i++) {
    System.out.println(weeks[i]);
}

배열의 오류

ArrayIndexOutOfBoundsException

위 오류는 배열 길이에 알맞지 않은 값을 얻으려고 시도할 경우 발생한다.

System.out.println(weeks[7]);  // 8번째 배열값이 없으므로 ArrayIndexOutOfBoundsException 오류가 발생한다.

다음번엔 꼭 2차원 배열을 정리하도록 하겠다!
오늘도 열공빡공~~~ 👍

profile
N잡러를 꿈꾸는 코딩 학도의 우당탕탕 코딩 입문기🍳

0개의 댓글