본문 바로가기

Java

[JAVA] 배열(Array)을 익히고 구현하기

1. 배열(Array)

  1) 많은 수의 데이터를 다룰 때 사용하는 자료구조

  2) 각 데이터를 인덱스와 1:1 대응하도록 구성

  3) 데이터가 메모리 상에 연속적으로 저장됨

2. 배열의 장점

  1) 인덱스를 이용하여 데이터에 빠르게 접근 가능

3. 배열의 단점

  1) 데이터의 추가/ 삭제가 번거로운 편

     - 미리 최대 길이를 생성해야 함

     - 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배열을 생성

     - 데이터 삭제 시, 인덱스를 유지하기 위해 빈 공간 유지


4. 1차원 배열과 2차원 배열 구현

  1) 1차원 배열의 생성과 구현

System.out.println("== 1차원 배열 ==");
        int[] arr = {1, 2, 3, 4, 5};
        for (int item: arr) {
            System.out.println("item = " + item);
        }

        arr[1] = 100;
        System.out.println("arr = " + Arrays.toString(arr));

출력 결과

arr이라는 변수로 일차원 배열을 생성을 한다. 그리고 for-each문을 통해 배열을 item에 넣어서 출력하면 배열이 하나씩 나오면서 출력이 되고, arr[1] = 100은 arr 배열의 인덱스 1번 자리를 100으로 바꾼다는 의미이다. 그렇게 다시 출력해 보기 전에 저 출력문에 arr이라고만 적으면 이상한 값이 나온다. 그래서 Arrays.toString을 통해 배열의 값을 출력해줄 수 있다.

 

2) 2차원 배열의 생성과 구현

System.out.println("== 2차원 배열 ==");
        int[][] arr2 = {{1, 2, 3}, {4, 5, 6}};
        System.out.println(arr2[0][1]);

        for(int[] row: arr2) {
            for(int item: row) {
                System.out.println("item = " + item);
            }
        }

 

출력 결과

arr2 변수 이름으로 {1,2,3},{4,5,6}인 2차원 배열이 생성되었고, arr[0][1] 을 출력하는데 arr 배열의 0번째 열에 1번째 행을 출력한다는 의미이다. 그래서 2가 출력이 되는 것이고 2차원 배열을 for-each문을 사용할 땐 1차원 row에 넣어준 다음에 

이중 반복문을 통하여 item에 넣어줘서 하나씩 출력하게 한다.