Java 배열(Array)

지정욱·2024년 4월 27일
0

배열이란?

배열은 동일한 자료형(Data Type) 변수를 사용해기 위해 데이터를 연속된 공간에 저장하는 자료구조이다.

그렇다면 배열을 사용하는 이유는 무엇일까?
코드를 통해서 비교해보자.

만약 위에 코드처럼 학생을 몇 명 더 추가해야 한다면 변수를 선언하는 부분과 점수를 철력하는 부분의 코드도 추가해야 한다. 학생 수가 증가함에 따라 int형 변수도 선언해야 한다.


위 코드는 배열을 사용함으로써 코드가 얼마나 줄었는지 확인할 수 있다.

이렇게 같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결한 것이 바로 배열이다.

배열 선언 및 사용

배열을 정의 하는 방법은 크게 2가지 방법이 있다.

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

이 방법은 데이터들의 값을 알고 있을 때 사용하면 편리하다. 앞에서 작성한 코드와 같은 방법이다. 예를 들어 1반에 있는 학생들의 점수를 저장한다고 가정해보자.
위에 비유한 내용으로 배열을 생성하는 예제를 살펴보자

public class ArrayEx {
	public static void main(String[] args) {
		int[] students = {50, 60, 70, 80, 90};
		    // 인덱스 번호 :0 , 1 , 2 , 3 , 4 
            
            // 변수 값 사용
		System.out.println(students[0]);
		System.out.println(students[1]); 
		System.out.println(students[2]); 
		System.out.println(students[3]); 
		System.out.println(students[4]);
	}
}

students라는 int[] 변수에 데이터를 저장하였다. 먼저 여기서 알아야 할 것은 바로 인덱스(index)이다. 인덱스는 데이터를 저장한 순서0 부터 시작하여 1씩 증가되어 만들어진다. 즉, students라는 배열에 0번부터 4번까지의 index 번호를 가진 5개의 공간이 데이터들이 저장되어 있는 것이다.

두번째 정의하는 방벙은 아래와 같다.

자료형[] 변수 = new 자료형[배열크기]
변수[0] = 데이터 값;
변수[1] = 데이터 값;

위 방법은 배열의 값은 모르지만 향후 값을 저장하고 싶을 때 주로 사용되는 방법이다. new라는 연산자를 통해서 참조형 변수를 생성하게 되는데 아래 사진처럼 x001과 같은 특정 주소값을 가지게 된다. (실제로는 16진수로 나타나는 주소값을 가진다.)

new 연산자를 사용해서 배열을 작성해 보도록 하자.

public class Array1Ref1 {
 public static void main(String[] args) {
 
 int[] students = new int[5]; //배열 생성
 //변수 값 대입
 students[0] = 90;
 students[1] = 80;
 students[2] = 70;
 students[3] = 60;
 students[4] = 50;
 //변수 값 사용
 System.out.println("학생1 점수: " + students[0]);
 System.out.println("학생2 점수: " + students[1]);
 System.out.println("학생3 점수: " + students[2]);
 System.out.println("학생4 점수: " + students[3]);
 System.out.println("학생5 점수: " + students[4]);
 }
}

new는 새로 생성한다는 뜻이고, int[5]는 int형 변수 5개라는 뜻이다. 따라서 int형 변수 5개룰 다룰 수 있는 배열이 생기게 된 것이다.

이제 배열에 대한 간단한 문제를 풀어보도록 하자.

학생5명의 점수를 합산해 평균을 내는 프로그램을 작성해 보도록 하자.

public class ArrayEx1 {
 public static void main(String[] args) {
 int student1 = 90;
 int student2 = 80;
 int student3 = 70;
 int student4 = 60;
 int student5 = 50;
 int total = student1 + student2 + student3 + student4 + student5;
 double average = (double) total / 5;
 System.out.println("점수 총합: " + total);
 System.out.println("점수 평균: " + average);
 }
}

profile
T자형 개발자가 되자

0개의 댓글