자바의 배열(array)

배열은 같은 타입의 데이터를 연속된 공간에 나열하고 각 인덱스(index)를 부여한 자료구조입니다.

음 쉽게 말해서 상자 안에 여러 데이터를 넣고 그걸 차례대로 쓰는 것이죠.

 

이미지 출처: https://hongong.hanbit.co.kr/java-%EC%9E%90%EB%B0%94-%EB%B0%B0%EC%97%B4array-%EC%84%A0%EC%96%B8%ED%95%98%EA%B3%A0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0/

 

구글에서 찾아본 이미지로는 이런 이미지인데

위처럼 상자 안에 여러 데이터를 넣는 걸 말합니다.

 

조금 특별한 특징이라면 자바에서는 다른언어(python, JS)등에 비해 좀 더 엄격하게 타입을 관리하기 때문에

int, String, double 등의 타입을 항상 선언해야합니다.

 

이 부분은 안 읽으셔도 됩니다.

왜 그런가 좀 알아보니까, 엄격하게 타입을 관리할수록 안전하다고 합니다.

 

1가지 이유에대해 예를 들어보자면, JS에서는 이런 타입선언에 민감하지 않아서 변수 쓰고 아무 타입의 데이터를 저장할 수 있습니다. 그런데 이렇게 되면 유저가 뭘 찾아달라고 하면 한 배열 안에 여러 가지 타입의 변수들이 있어 찾기 어려워집니다. 그래서 요새는 타입을 관리하지 않는 언어에서도 TypeScript와 같은 라이브러리를 사용하는 게 필수라고 합니다.


더보기

배열을 선언하는 방법

배열을 선언하려면 [](대괄호)를 변수의 타입뒤나 이름뒤에 쓰실 수 있습니다.

타입[] 변수 혹은 타입 변수[]

이런식으로 말이죠

가장 많이 쓰는 건 타입[] 변수입니다.

지금 선언하는 건 1차원 배열 선언이고

또 다른 2차원 배열을 선언하는 것도 있어 자주 쓰인다고 합니다.

 

더보기

배열 초기화하기

배열을 초기화하는 방법:

타입[] 변수 = new 타입[길이]

여기서 헷갈릴 수 있는 부분이 길이를 설정하는 건데

 

예를 들면

int[] number = new int[3] 이런 식으로 길이를 설정하면

number[0]

number[1]

number[2]

까지 쓸 수 있습니다.

배열의 특징 중 하나입니다.

index는 0부터 시작하기 때문에 길이를 3으로 설정하면

0,1,2까지 3개까지 값을 넣을 수 있습니다.

 

더보기

배열에 값 넣기

위에서 한 것처럼 초기화한 뒤에

변수[인덱스] = 값

이런 식으로 값을 넣어줄 수 있습니다.

number[0] = 13

number[1] = 12

number[2] = 10

 

좀 번거롭지 않습니까?

 

그래서 다른 방법으로

int [] number = {13,12,10}

이런 식으로 초기화하면서 선언할 수 있습니다.

 

함수가 궁금하다면 따로 찾아보시고

근데 함수의 파라미터로 배열을 사용한다면 에러가 발생하는 경우가 있습니다.

예를 들어

public class Main {
    public static void main(String[] args) {
        System.out.println(add({10,20}));
        
        }
    public static int add(int[] numbers) {
        return numbers[0] + numbers[1];
    }
}

이런 경우가 있는데

이런 식으로 쓰면 컴파일 에러가 뜹니다.

이를 해결하려면

System.out.println(add(new int[]{10, 20}));

 

add 함수를 사용한 부분에서 new int []를 값들의 앞에 사용하면 됩니다.

근데 사실 저런 식으로 배열을 넣는 경우는 거의 없습니다.

 

더보기

배열 값 출력하기

그냥 변수[인덱스]로 출력할 수 있지만,

보통 for문을 배열과 함께 자주 사용하는데, 요. length 메서드 덕분인 것 같습니다.

array.length를 하면 배열의 인덱스 개수를 자동으로 새 줍니다.

이런 고마운 메서드는 기억해 둡시다,

public class Main {
    public static void main(String[] args) {
        int[] array = {10,12,11};

        for (int i = 0; i < array.length; i++) {
            System.out.printf("array[%d] = " + array[i] + "\n",i);
        }
    }
}

 

위에 입력한 것처럼 하면

array[0] = 10
array[1] = 12
array[2] = 11

이런 식으로 나옵니다.

 

Arrays.toString이란 메서드도 있는데 자주 사용하진 않는다.

궁금하면 찾아보면 됩니다.

 

 

더보기

핵심요약

배열 선언은

타입[] 변수 = {값 1, 값 2,...};

 

배열 출력은

for문을 이용해서 하면 편하다.

length메서드를 기억하자

index는 0부터 시작한다.

 

기초적인 요약은 이 정도입니다.

 

'Java' 카테고리의 다른 글

[Java] 컬렉션(Collection) 정리 #1 List  (2) 2024.01.11
[Java] Generic 정리  (2) 2024.01.05
[Java]클래스 정리 및 OOP 4가지 특징  (2) 2024.01.04

+ Recent posts