영벨롭 개발 일지

[Java] 배열 Array 정리 본문

Programming Language/Java

[Java] 배열 Array 정리

영벨롭 2023. 7. 21. 15:53

★ 배열 Array

 배열은 많은 양의 데이터를 효율적으로 관리할 수 있도록 해주는 선형 자료구조입니다. 

 같은 자료형의 데이터를 연속된 공간에 순차적으로 나열하고, 배열 내의 요소들은 각각의 순서를 갖고 있는데 이것을 인덱스 index 라고 부릅니다. 

 

- 특징

  • 같은 타입의 데이터만 저장할 수 있다. 
  • 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다. 
  • 각각의 요소는 index 라는 순서를 갖고 있다. 

 

★ 배열 선언 및 초기화

 자바의 배열은 '한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다' 라는 특징을 갖기 때문에, 미리 배열의 크기를 지정해야 합니다. 

 

- 배열 선언

// 길이가 5인 배열 선언
int[] arr1 = new int[5];
int arr2[] = new int[5];

- 배열 선언 및 초기화

 다음과 같은 방법들로 배열을 선언함과 동시에 초기화를 할 수 있습니다. 

// 선언과 동시에 초기화
int[] arrNum = {1, 2, 3, 4, 5};
String[] arrString = {"Hello", "World"};
char[] arrChar = new char[] {'a', 'b', 'c'};

- 주의사항

 값의 목록으로 배열을 선언할 때, 배열 변수를 이미 선언한 후에 중괄호를 사용한 배열 생성은 에러를 발생시킵니다. 

int[] arr;
arr = {1, 2, 3, 4, 5}; // 컴파일 에러

 배열 변수를 미리 선언한 후, 값 목록을 지정해야하는 상황이라면 new 연산자를 통해 값의 목록을 지정해야 합니다. 

int[] arr;
arr = new int[] {1, 2, 3, 4, 5}; // new 연산자를 이용한 값의 목록 지정

 

 

★ 배열 요소 접근 및 값 할당

 배열의 요소를 접근할 때에는 index 를 이용합니다. 

int[] arr = {1, 2, 3, 4, 5};
int el = arr[1]; // 배열 요소 접근 
arr[0] = 100; // 배열 요소 값 할당

 

 

★ 배열 크기 - length

 배열의 length 프로퍼티를 사용하여 배열의 길이를 알 수 있습니다. 

        int[] arr = {1, 2, 3, 4, 5};
        System.out.println(arr.length); // 5

 

 

★ 배열 출력

 배열을 출력하고자 할 때, 다음과 같이 배열의 이름만을 print 문에 넣어 출력하게 되면 우리가 원하는 결과를 얻지 못 합니다. 

int[] arr = {1, 2, 3, 4, 5};

System.out.println(arr); // [I@1fb3ebeb
// [I: 배열 int 형
// 1fb3ebeb 번지

 배열은 참조 타입이기 때문에 arr 변수 자체는 스택 영역에 존재하고 그 값으로는 실제 배열이 저장되어 있는 힙 영역의 메모리 주소를 갖고 있게 됩니다. 

 따라서 배열을 출력하기 위해선 for 문을 사용하여 배열의 각 요소에 접근하여 출력하거나, java.util.Arrays 클래스에서 제공해주는 Arryas.toString() 메소드를 이용하여 배열을 문자열 형식으로 출력할 수 있습니다. 

        int[] arr = {1, 2, 3, 4, 5};

        // for 문을 사용하여 배열 출력
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
        // 1 2 3 4 5

        // Arrays.toString() 메소드를 사용하여 배열 출력
        System.out.println(Arrays.toString(arr));
        // [1, 2, 3, 4, 5]

 

★ 배열 Arrays 메소드

 java.util.Arrays 클래스에서 제공해주는 여러 메소드는 다음 사이트에서 확인해주세요.

https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html

 

Arrays (Java Platform SE 8 )

parallelPrefix public static   void parallelPrefix(T[] array, BinaryOperator  op) Cumulates, in parallel, each element of the given array in place, using the supplied function. For example if the array initially holds [2, 1, 0, 3] and the operation pe

docs.oracle.com

 

반응형