자바의 배열(Array)

mDev_97·2022년 1월 3일
1

Java

목록 보기
4/28

배열이란?

인덱스(index)와 인덱스에 대응하는 데이터들로 이루어진 자료 구조
• 배열을 이용하면 한 번에 많은 메모리 공간을 할당할 수 있다.
같은 타입의 데이터들을 순차적으로 저장한다.
• 배열의 인덱스는 0부터 시작한다.
인덱스(index) : 배열의 시작 위치에서 0부터 시작하는 데이터가 있는 상대적인 위치

배열의 선언 및 초기화

// 배열의 선언
int intArray[];
char charArray[];
// 또는
int[] intArray;
char[] charArray;


// 배열 생성
intArray = new int[10];
charArray = new char[10];
// 또는
int intArray[] = new int[10];
char charArray[] = new char[10];

// 배열 초기화
int intArray[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

int intArray[10]; // 컴파일 오류 발생!
// 선언 시에는 배열의 크기를 지정하면 안된다.

배열 원소에 접근

• 배열 변수명과 [ ] 사이에 배열 원소의 인덱스를 적어 접근
• 배열의 인덱스는 0부터 시작한다.
• 배열의 마지막 요소의 인덱스는 (배열의 크기 - 1)이다.

int intArray[] = new int[10]; // index는 0~9
intArray[0] = 3; // index 0에 정수 3을 저장
intArray[1] = 2; // index 1에 정수 2를 저장
int n = intArray[1]; // intArray의 index가 3인 원소를 n에 저장

n = intArray[-2]; // 오류 발생, 인덱스는 음수 사용이 불가능하다.
n = intArray[20]; // 오류 발생, 인덱스는 배열의 크기를 넘을 수 없다.

배열의 크기(length)

• 배열은 자바에 객체로 관리한다.
• 배열 객체 내에 length 필드는 배열의 크기를 나타낸다.

int intArray[] = new int[10];
int n = intArray.length;
System.out.println(n); // 10을 출력

배열과 for-each문

for-each 문

• 배열이나 나열(enumeration)의 각 원소를 순차적으로 접근하는데 유용한 for문이다.

int intArray[] = {1, 2, 3, 4, 5};
int sum = 0;
for(int k : intArray) {
    sum += k;
}
System.out.println("배열 원소의 합은 : " + sum + "이다.");

배열 원소의 합은 : 15이다.

String fruitArray[] = {"포도", "딸기", "사과", "바나나", "수박"};
for(String s : fruitArray) {
    System.out.print(s + ", ");
}

포도, 딸기, 사과, 바나나, 수박



2차원 배열

2차원 배열의 선언

int intArray[][];
char charArray[][];
double doubleArray[][];
//또는
int[][] intArray;
char[][] charArray;
double[][] doubleArray;

2차원 배열의 생성

intArray = new int[2][5];
charArray = new char[5][10];
doubleArray = new double[10][2];
// 또는
int intArray[][] = new int[2][5];
char charArray[][] = new char[5][10];
double doubleArray[][] = new double[10][2];

2차원 배열의 초기화

int intArray[][] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};
char charArray[][] = {{'a', 'b'}, {'c', 'd'}};

2차원 배열의 길이(length)

int intArray[][] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {9, 10, 11}};
// [4][3] 형태

int length1 = intArray.length; // 4
int length2 = intArray[0].length; // 3
int length3 = intArray[1].length; // 3

• intArray.length : 2차원 배열의 행의 개수를 뜻한다.
• intArray[index].length : index 번째 행의 열의 개수를 뜻한다.



메소드에서 배열을 리턴

• 배열의 레퍼런스를 리턴한다.
• 메소드의 리턴 타입 : 리턴 받는 배열 타입과 일치한다.
• 리턴 타입에 배열의 크기를 지정하지 않는다.

int[] makeArray() {
    int makedIntArray[] = new int[5];
    return makedIntArray;
}

int[] intArray;
intArray = makeArray();
profile
안녕하세요. 백엔드, 클라우드, 인프라에 관심과 열정이 있는 김문성입니다. 😊

0개의 댓글

관련 채용 정보