자바 - 배열

안녕하세요, 자바를 배우고자 하는 프로그래머 여러분! 오늘은 자바의 흥미로운 배열 세계에 빠져보겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 여러분이 이 프로그래밍 도구-kit에 중요한 도구가 될 기본 개념인 배열에 대해 안내해 드리겠습니다.

Java - Arrays

자바에서 배열은 무엇인가요?

생일派对를 계획 중이라고 상상해 보세요. 손님 명단을 관리해야 한다면 각 이름을 별도의 쪽지에 쓰는 것보다 단일 목록에 모든 이름을 담아 보면 더 쉬울 것 같죠? 그렇게 프로그래밍에서 배열은 동일한 기능을 합니다!

자바에서 배열은 단일 타입의 고정된 수의 값을 담는 컨테이너입니다. 모든 같은 종류의 항목을 포함하는 상자들이 줄어들어 있을 줄 상상해 보세요.

배열 변수 선언

기본부터 시작해 보겠습니다. 배열 변수를 선언하려면 꺾쇠括弧 []를 사용합니다:

int[] numbers;
String[] names;

여기서 우리는 두 개의 배열 변수를 선언했습니다: 하나는 정수를 담을 것이고, 다른 하나는 문자열을 담을 것입니다.

배열 생성

이제 배열을 생성해 보겠습니다:

int[] numbers = new int[5];
String[] names = {"Alice", "Bob", "Charlie", "David", "Eve"};

첫 번째 줄에서 우리는 5개의 정수를 담을 수 있는 배열을 생성하고 있습니다. 두 번째 줄에서는 배열을 한 번에 초기화하는 문자열 배열을 생성하고 있습니다.

배열 처리

배열을 어떻게 작업할 수 있는지 살펴보겠습니다:

int[] scores = {85, 90, 78, 88, 92};

// 요소 접근
System.out.println("첫 번째 점수: " + scores[0]);  // 출력: 85
System.out.println("세 번째 점수: " + scores[2]);  // 출력: 78

// 요소 수정
scores[1] = 95;
System.out.println("갱신된 두 번째 점수: " + scores[1]);  // 출력: 95

// 배열 길이
System.out.println("점수의 수: " + scores.length);  // 출력: 5

기억해 주세요, 배열 인덱스는 0에서 시작하며, 1에서는 아닙니다. 초보자들에게는 공통적인 실수지만, 익숙해 질 거예요!

foreach 루프와 배열

자바는 foreach 루프를 사용하여 배열을 이터레이션하는 깔끔한 방법을 제공합니다:

String[] fruits = {"Apple", "Banana", "Cherry", "Date"};

for (String fruit : fruits) {
System.out.println(fruit + "을(를) 좋아해요");
}

이 루프는 다음과 같이 출력합니다:

Apple을(를) 좋아해요
Banana을(를) 좋아해요
Cherry을(를) 좋아해요
Date을(를) 좋아해요

전통적인 for 루프보다 더 깔끔하지 않나요?

배열을 메서드에 전달

배열은 다른 변수처럼 메서드에 전달할 수 있습니다:

public static void printArray(int[] arr) {
for (int num : arr) {
System.out.print(num + " ");
}
System.out.println();
}

public static void main(String[] args) {
int[] myArray = {1, 2, 3, 4, 5};
printArray(myArray);  // 출력: 1 2 3 4 5
}

메서드에서 배열 반환

메서드는 배열을 반환할 수도 있습니다:

public static int[] createArray(int size) {
return new int[size];
}

public static void main(String[] args) {
int[] newArray = createArray(5);
System.out.println("배열 길이: " + newArray.length);  // 출력: 5
}

Arrays 클래스

자바는 배열을 조작하기 위한 다양한 메서드를 포함하는 유틸리티 클래스인 Arrays를 제공합니다. 여기 몇 가지 일반적으로 사용되는 메서드가 있습니다:

메서드 설명
Arrays.sort(arr) 배열을 정렬합니다
Arrays.binarySearch(arr, key) 특정 요소를 검색합니다
Arrays.fill(arr, val) 배열을 특정 값으로 채웁니다
Arrays.toString(arr) 배열의 문자열 표현을 반환합니다

이러한 메서드를 본격적으로 살펴보겠습니다:

import java.util.Arrays;

public class ArraysClassDemo {
public static void main(String[] args) {
int[] numbers = {5, 2, 8, 1, 9};

// 정렬
Arrays.sort(numbers);
System.out.println("정렬된 배열: " + Arrays.toString(numbers));
// 출력: 정렬된 배열: [1, 2, 5, 8, 9]

// 이진 검색
int index = Arrays.binarySearch(numbers, 5);
System.out.println("5의 인덱스: " + index);  // 출력: 2

// 채우기
int[] filledArray = new int[5];
Arrays.fill(filledArray, 7);
System.out.println("채워진 배열: " + Arrays.toString(filledArray));
// 출력: 채워진 배열: [7, 7, 7, 7, 7]
}
}

그리고 이렇게 끝! 자바 배열의 세계에 첫 걸음을 내딛었습니다. 연습이 실력을 단다는 것을 기억해 주세요. 다양한 종류의 배열을 생성하고 조작하고 프로그램에서 사용해 보세요. 알면 알수록 배열 마법사가 될 거예요!

우리의 이야기를 마무리하며, 한 학생이 배열은 초콜릿 상자와 같다고 말한 것을 기억해 봅니다 - 열어보기 전에는 무엇이 들어있는지 알 수 없지만 (또는 우리의 경우는 출력해 보기 전까지). 코딩을 즐기세요, 미래의 프로그래머 여러분!

Credits: Image by storyset