본문으로 바로가기

자바 배열(Java Array)

category 프로그래밍, 언어/Java초, 중급 2019. 8. 29. 16:54

자바 배열 정의

 

연속된 동일한 타입의 변수를 연속된 메모리 공간에 할당하고, 데이터에 index 부여하여 접근할 있게 하는 객체이다.

다수의 변수를 지정하지 않고 관리할 있어 개발이 간결해지고 가독성이 좋다.

 

 

1. 기본 사용법

 

코드)

1
2
3
4
5
6
7
8
9
10
//배열 선언
int[] iArray;        
int iArray2[];
 
//배열크기를 지정하여 선언
String[] sArray = new String[5];
String sArray2[] = new String[5];
 
//값을 지정하여 선언
char[] cArray = {'A''B''C'};
 

 

배열도 객체이기 때문에 new연산자를 이용하여 사용하거나(크기를 지정해야함), 혹은 값을 지정하여 선언할 있다.

배열은 new혹은 값을 지정하여 선언하면 크기만큼 index 부여되며 인덱스 번호를 이용하여 저장된 값들을 사용할 있다.

 

코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//배열크기를 지정하여 선언 후 반복문을 이용하여 값 대입
String[] sArray = new String[5];
        
for(int i=0; i < sArray.length; i++) {
    sArray[i] = "test" + i;
}
 
for(int i=0; i < sArray.length; i++) {
    System.out.println(sArray[i]);
}
 
        
//값을 지정하여 선언
char[] cArray = {'A''B''C'};
 
for(int i=0; i < cArray.length; i++) {
    System.out.println(cArray[i]);
}
 
int[] iArray = new int[5];
 
 
for(int i=0; i < iArray.length; i++) {
    System.out.println(iArray[i]);
}
 
 

 

 

 

결과)

test0
test1
test2
test3
test4

A
B
C

3
3
3
3
3

 

 

 

2. Arrays.util을 이용한 다양한 기능

 

Arrays라는 배열 Util객체를 사용하여 다양한 기능을 사용할 있다

 

코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
int[] iArray = new int[3];
    
 
for(int innerValue : iArray) {
    System.out.print(innerValue + ",");
}
 
System.out.println();
 
int[] iArray2 = {759};
System.out.print("정렬하기 전 : ");
for(int innerValue : iArray2) {
    System.out.print(innerValue + ", ");
}
 
System.out.println();
 
 
System.out.print("정렬 후 : ");
for(int innerValue : iArray2) {
    System.out.print(innerValue + ", ");
}
 
System.out.println();
 
//Arrays.binarySearch를 이용하여 저장된 값의 index를 가져올 수 있다.(반드시 정렬되어 있는 배열값 이어야 한다.)
int index = Arrays.binarySearch(iArray2, 7);
 
iArray2[index] = 1;
 
for(int innerValue : iArray2) {
    System.out.print(innerValue + ", ");
}
 
System.out.println();
 
int[] iArray3 = Arrays.copyOf(iArray2, 3);
 
for(int innerValue : iArray3) {
    System.out.print(innerValue + ", ");
}
 
 

 

 

결과)

5,5,5,

정렬하기 전 : 7, 5, 9,

정렬 후 : 5, 7, 9,

5, 1, 9,

5, 1, 9,