배열

  • 정의: 같은 타입의데이터를 메모리상에 연속적으로 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료 구조
  • 인덱스: 첨자값, [](대괄호) 사용
  • 배열은 참조 타입에 속한다.

배열의 선언


/* 대괄호의 위치 차이 */
int[] intArray; // 타입[] 변수(배열명);
int intArray[]; // 타입 변수(배열명)[];

/* null로 초기화 */
String[] stringArray = null;

/* 값 목록을 가진 배열 생성 */
String[] names = { "홍길동", "전지현", "설현", "수지" };
int[] scores = { 80, 90, 95, 99 };

/* new 연산자로 바로 배열 객체 생성 */
double[] doubleArray = new double[5]; // 배열의 길이를 지정한다. (이 때 인덱스는 0~4)

/* 컴파일 에러 */
String[] names = null;
// names = { "홍길동", "전지현", "설현", "수지 }; -> 배열 변수 선언 후 중괄호를 사용한 배열 생성은 에러 발생
names = new String[] { "홍길동", "전지현", "설현", "수지 };


  • 중괄호{}는 주어진 값들을 가진 배열 객체를 힙(heap) 메모리 영역에 생성하고, 배열 객체의 번지(주소)를 리턴한다.
  • 배열 변수는 리턴된 번지를 저장하여 참조한다.
  • 위의 예에서 "홍길동"은 names[0] "전지현"은 names[1], 80은 scores[0] 이다.

배열의 값 바꾸기


String[] names = { "홍길동", "전지현", "설현", "수지" };
System.out.println("names[0] > " + names[0]); // 홍길동
names[0] = "에일리";
System.out.println("names[0] > " + names[0]); //에일리

  • 배열의 값 바꾸기는 = (대입 연산자)를 사용한다.

배열 길이

  • 배열의 길이: 배열에 저장할 수 있는 전체 항목 수를 말한다.
  • 배열 객체의 length 필드(field)를 읽어야 한다.
  • 필드(field): 객체 내부의 데이터
  • 배열의 마지막 요소의 인덱스는 배열 길이-1이다.

int[]  intArray = {100, 200, 300};
int len = intArray.length;
System.out.println("배열 intArray의 길이는 > " + len);

+ Recent posts