📋 1차원 배열

{ 1, 3, 5, 7, 9, }
주소(index) 0 1 2 3 4
요소(element) 1 3 5 7 9
package section07;

public class Ex0701 {
    public static void main(String[] args) {

        // 배열 정의(literal)
        int[] oddArr = { 1, 3, 5, 7, 9 };
        int evenArr[] = { 2, 4, 6, 8, 10 };

        System.out.println("oddArr\\t\\t: " + oddArr);
        
        /*
         * [I@2d363fb3
         * [는 배열을 의미
         * I는 정수형(int)를 의미
         * 2d363fb3는 배열 객체의 해시코드를 의미(16진수로 표현)
         */
        
        System.out.println("oddArr.length\\t: " + oddArr.length); // 배열 길이

        System.out.print(oddArr[0]);
        System.out.print(' ');
        System.out.print(oddArr[1]);
        System.out.print(' ');
        System.out.print(oddArr[2]);
        System.out.print(' ');
        System.out.print(oddArr[3]);
        System.out.print(' ');
        System.out.print(oddArr[4]);

        System.out.println();

        for (int i = 0; i < oddArr.length; i++) {
            System.out.print(oddArr[i]);
            System.out.print(' ');
        }
    }
}

package section07;

import java.util.Arrays;

public class Ex0702 {
    public static void main(String[] args) {

        // 배열 정의(object)
        int[] oddArrObject;
        // oddArrObject = { 1, 3, 5, 7, 9 }; // 문법 에러
        oddArrObject = new int[] { 1, 3, 5, 7, 9 };

        // 빈 배열 정의
        int[] intArr = new int[5];
        System.out.println("before - Arrays.toString(intArr)\\t: " + Arrays.toString(intArr));

        intArr[0] = 1;
        intArr[1] = 2;
        intArr[2] = 3;
        intArr[3] = 4;
        intArr[4] = 5;
        intArr[5] = 6; // ArrayIndexOutOfBoundsException
        System.out.println("after - Arrays.toString(intArr)\\t\\t: " + Arrays.toString(intArr));
    }
}

✅ 배열의 특징

✅ 배열의 초기값

자료형 배열 초기값
정수 0
실수 0.0
문자 ‘’
객체 null
package section07;

public class Ex0703 {
    public static void main(String[] args) {
        char[] words = { '1', 'J', '2', 'A', '3', 'V', '4', 'A' };
        String resultWord = "";

        System.out.println((int) 'A'); // 65
        System.out.println((int) 'Z'); // 69

        // for (int i = 0; i < words.length; i++) {
        // int word = words[i];

        // if (word >= 65 && word <= 90) {
        // resultWord += (char) word;
        // }
        // }

        // for each
        for (int word : words) {
            if (word >= 65 && word <= 90) {
                resultWord += (char) word;
            }
        }

        System.out.println(resultWord); // JAVA

    }
}

📋 배열의 정렬

package section07;

import java.util.Arrays;
import java.util.Collections;

public class Ex0704 {
    public static void main(String[] args) {
        // int[] numbers = { 30, 10, 50, 20, 40 };
        Integer[] numbers = { 30, 10, 50, 20, 40 }; // 내림차순 정렬에서는 Wrapper 클래스를 사용해야 함

        // 정렬 전 배열 출력
        System.out.println("정렬 전 배열\\t\\t: " + Arrays.toString(numbers));

        // 배열 정렬 (오름차순)
        Arrays.sort(numbers);

        // 정렬 후 배열 출력
        System.out.println("정렬 후 배열(오름차순)\\t: " + Arrays.toString(numbers));

        // 배열 내림차순 정렬
        Arrays.sort(numbers, Collections.reverseOrder());

        // 정렬 후 배열 출력
        System.out.println("정렬 후 배열(내림차순)\\t: " + Arrays.toString(numbers));
    }
}

📋 얕은 복사/깊은 복사