배열이란 같은 데이터 타입을 가진 연속된 메모리 공간으로 이루어진 자료 구조입니다. 같은 데이터 타입을 가진 여러개의 변수를 할당하기위해 사용합니다.
자바에서 배열 사용하는 방법입니다.
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]);
}
실행결과
이상입니다.
정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.
질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.
'Java' 카테고리의 다른 글
자바 가비지 컬렉션(Java Garbage Collection) (0) | 2018.09.29 |
---|---|
자바 벡터(Vector)와 어레이리스트(ArrayList) 비교 (5) | 2018.09.23 |
java.lang.NullPointerException 해결법 (1) | 2018.09.10 |
java.lang.ArrayIndexOutOfBoundsException 해결법 (0) | 2018.09.10 |
자바 foreach문 사용법 (0) | 2018.09.09 |
자바 String 문자열 사용법 정리 (1) | 2018.08.20 |
[Java] 자바 웹 크롤링 - 실시간 데이터 수집 (6) | 2018.08.20 |
자바 DB연동 - JDBC + MySQL (0) | 2018.08.17 |