java/기초문법

[Java] 배열

wugawuga 2022. 12. 29. 23:06

배열이란?

  • 같은 타입의 여러 변수들을 하나의 묶음으로 다루는 것을 배열(array) 라고 한다

 

배열의 선언

// 타입[] 변수명;
int[] intArray;

// 타입 변수명[];
String strArray[];

 

배열의 생성

// 타입[] 변수명;
// 변수명 = new 타입[배열의 길이];
int[] intArray;
intArray = new int[3];

// 선언과 생성 동시에
int[] intArray = new int[3];

길이가 3이고 타입은 int 인 배열이 생성된다

하지만 선언과 생성을 동시에 할 수도 있는데 대부분의 경우 이렇게 한다

 

배열의 인덱스

  • 인덱스(index) 는 배열의 요소마다 붙여진 일련번호
  • 각 요소를 구별하는데 이용된다

인덱스는 0부터 시작하기 때문에 주의해야한다

int[] intArray = new int[3];

int findInt = intArray[index];

길이는 3으로 1, 2, 3 이렇게 세 개의 요소를 가지고 있지만
이 요소에 접근을 하기위해선 위 intArray[index] 인덱스 위치는 0, 1, 2 만 가능하다

0, 1, 2 가 아닌 다른 숫자를 넣어주면 에러가 발생한다 -> ArrayIndexOutOfBoundsException

 

배열에 접근해보자

int[] intArray = new int[]{1, 2, 3, 4, 5}; // new int[] 생략 가능

// 길이는 5이지만, index 는 0부터 시작이므로 첫번째 값 출력을 위해선 0부터 시작해야한다
for (int i = 0; i < ints.length; i++) {
    System.out.println(ints[i]);
}
--------------------------------------
1
2
3
4
5

int[] intArray = {1, 2, 3, 4, 5};

for (int i : ints) {
    System.out.println(i);
}
--------------------------------------
1
2
3
4
5

반복문과 향상된 반복문으로 요소에 접근하여 출력을 할 수 있다

향상된 반복문에선 중요한게 하나 있는데

i 값을 변경할 수 없다. 그냥 반복문에선 ints[i] = 10; 이런 식으로 재할당 가능하다
하지만 향상된 반복문에선 i 에 재할당을 해도 배열 요소는 변하지 않는다