Array ( 배열 )
- 번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료구조
- 배열을 구성하는 단위 데이터를 element(원소) 라고 한다.
- 배열의 크기를 줄이거나 늘리고 싶다면, 동적으로는 불가능하고 재선언을 해야한다.
- 이차원 배열, 다차원 배열도 생성이 가능하다.
1. 배열의 구조
2. 배열의 선언
3. 배열의 사용
4. 배열의 활용
1. 배열의 구조
- 예를들어 1,3,5,7이라는 데이터를 담고있는 배열은 위와같은 구조로 이루어져있다.
- INDEX는 1이 아닌 0부터 시작한다. List도 같은 개념으로 INDEX는 1부터 시작하므로, 자주 사용하기때문에 익숙해져야한다.
- INDEX가 있기때문에 접근하고 싶은 DATA에 바로 접근이 가능하다. ex) arr[0] = 1, arr[1] = 3
- 위 배열의 길이는 4이다. arr.length = 4
2. 배열의 선언
public class Main {
public static void main(String[] args) {
int[] arr = {1,2,3};
System.out.print(arr[0]);
System.out.print(arr[1]);
System.out.print(arr[2]);
}
}
- 위와같이 배열을 선언하면서 배열에 값을 담을수있다.
- 위 코드를 실행하게되면, 123 이 출력된다.
public class Main {
public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 1;
arr[1] = 2;
System.out.print(arr[0]);
System.out.print(arr[1]);
System.out.print(arr[2]);
}
}
- 위 코드에서처럼 배열을 선언하면서 배열의 길이를 미리 설정해줄수있다.
- 위 코드를 실행하게되면 120 이 출력된다.
- (길이를 설정하고 값을 설정해주지않은 빈 배열은 0이 채워져있다.)
public class Main {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5,6}};
System.out.print(arr[0][0]);
System.out.print(arr[0][1]);
System.out.print(arr[0][2]);
System.out.println();
System.out.print(arr[1][0]);
System.out.print(arr[1][1]);
System.out.print(arr[1][2]);
}
}
- 2차원 배열의 선언.
- 1차원 배열때와 마찬가지로 위코드처럼 값을 미리 넣을수도있고, 배열의 길이를 미리 설정해줄수도있다.
- 인덱스에 접근할땐, 1차원배열에선 바로 접근하였지만, 2차원배열을 [0][0] 처럼 1차원 의 인덱스와 2차원인덱스를 다 접근하여야한다.
- 위 코드를 실행하면 123 456 이 출력되어진다.
3. 배열의 사용
public class Main {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9,10};
for(int i=0; i<arr.length; i++) {
System.out.println(arr[i]);
}
}
}
- 배열의 사용법은 여러가지가 있지만, 대표적으로 for문을 사용하여 index에 접근하고 값을 출력하는 코드를 작성하였다.
- 위 코드는 실행하게 되면 배열에 선언해놓은 12345678910 이 순서대로 출력되어진다.
- for문의 i가 0부터 1씩 증가되는 방식을 사용하여 arr의 인덱스에 접근한것이다.
public class Main {
public static void main(String[] args) {
int[] arr = new int[10];
for(int i=0; i<arr.length; i++) {
arr[i] = i+1;
}
for (int i=0; i<arr.length; i++) {
System.out.println(arr[i]);
}
}
}
- 위 코드는 10의 길이로 선언된 배열에 for문의 i증가 방식을 통해 값을 넣었다.
- 위 코드는 실행하게되면 12345678910 이 순서대로 출력된다.
4. 배열의 활용
public class Main {
public static void main(String[] args) {
int[] arr = new int[5];
Scanner sc = new Scanner(System.in);
for (int i=0; i<arr.length; i++) {
arr[i] = sc.nextInt();
}
for (int i=0; i<arr.length; i++) {
for (int j=0; j<arr.length-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
for(int i=0; i<arr.length; i++) {
System.out.println(arr[i]);
}
}
}
- 배열을 사용하여 입력받은 값들을 정렬하거나 합칠수있다.
- Arrays.sort를 사용하여 정렬할수도있지만, 버블정렬을 구현해보았다.
- 5 길이의 배열을 선언해준다.
- 해당 배열에 Scanner를 통해 값을 입력받는다.
- 랜덤으로 들어온 값들을 버블정렬을 통해 오름차순 정렬해준다.
- 배열을 설명하는 글이기때문에 버블정렬은 따로 설명하지않도록한다.
'Language > Structure' 카테고리의 다른 글
[Structure] Queue (First In First Out) (0) | 2021.11.07 |
---|---|
[Structure] Stack (Last In First Out) (0) | 2021.11.07 |