자바 배열 사용법



배열이란 같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료 구조입니다. 같은 데이터 타입을 가진 여러개의 변수를 할당하기위해 사용합니다.


자바에서 배열 사용하는 방법입니다.


1. 1차원 int형 배열

C/C++과 달리 자바는 모든 변수가 객체(Object)로 이루어져있기 때문에 배열을 사용하기 위해 배열 객체에 new를 통해 메모리 공간을 할당해줍니다.

다음은 1차원 int형 배열의 사용방법입니다.


소스코드(Java) - 1차원 int형 배열 선언

int arr[];

arr = new int[10]; // int arr[] = new int[10] 과 같음

// int arr[] = {1, 2, 3, 4} 도 가능


for(int i = 0; i < 10; i++) {

arr[i] = i+1;

}


System.out.print("arr = [ ");

for(int i = 0; i < 10; i++) {

System.out.print(arr[i]);

System.out.print(" ");

}

System.out.println("]");

실행결과


2. 1차원 String형 배열

int와 마찬가지로 String 배열 역시 똑같은 방법으로 선언하고 사용하시면 됩니다.

소스코드(Java) - 1차원 String형 배열 선언

String[] str = new String[10];


for(int i = 0; i<10; i++) {

str[i] = "str" + (i+1);

}


for(int i =0; i < 10;i ++) {

System.out.print(str[i] + " ");

}

실행결과


3. 1차원 int형 배열의 다른 선언방법

C/C++ 등의 언어에서는 배열을 선언과 동시에 크기를 지정해주어야 하지만 자바와 같은 언어의 경우 배열 객체의 선언과 정의를 따로함으로써 배열의 크기를 받아 지정해 줄 수 있습니다.(C/C++의 포인터 동적할당 처럼 사용)

소스코드(Java) - 1차원 int형 배열 선언2

int arr[];

int arr_size = 8;

arr = new int[arr_size];

for(int i = 0; i < arr_size; i++) {

arr[i] = i+1;

}


for(int i = 0; i < arr_size; i++) {

System.out.println(arr[i]);

}

실행결과


4. 2차원 int형 배열

1차원과 마찬가지로 new를 통해 선언할 수 있습니다.

소스코드(Java) - 2차원 int형 배열 선언

int matrix[][] = new int[5][5]; // 다음과 같이 초기화 할 수 있습니다.


for(int i = 0; i < 5; i++) {

for(int j = 0; j < 5; j++) {

matrix[i][j] = (j+1)+(i*5);

}

}


for(int i = 0; i < 5; i++) {

for(int j = 0; j < 5; j++) {

System.out.print(matrix[i][j] + " ");

}

System.out.println();

}

실행결과


5. 배열 복사

System.arraycopy 메소드를 통해 같은 데이터 타입의 배열끼리 배열을 복사 할 수 있습니다.

소스코드(Java) - 1차원 String형 배열 복사

String[] str1 = {"a", "b", "c"};

String[] str2 = new String[3];


System.arraycopy(str1, 0, str2, 0, 3); // 복사할 배열, 복사할 배열의 시작위치, 복사받을 배열, 복사받을 배열의 시작위치, 배열크기


for(int i = 0; i < 3; i++) {

System.out.println(str2[i]);

}

실행결과


6. 배열 정렬

Array클래스의 sort메소드를 통해 배열을 오름차순 또는 내림차순, 인덱스를 지정해서 배열의 요소를 정렬할 수 있습니다. (시간복잡도는 O(n logn))

소스코드(Java) - 1차원 int형 배열 정렬

int arr[] = {4, 2, 3, 1, 0}; // 배열의 선언과 동시에 초기화(크기는 알아서 지정)


Arrays.sort(arr, 0, 5); // 배열, 정렬을 수행 할 시작위치, 끝위치


for(int i = 0; i < 5; i++) {

System.out.println(arr[i]);

}

실행결과


이상입니다.




정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.

질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.



to Top