IT/JAVA

[JAVA] 자바 기초 복습 (Chapter. 03)

j8970 2025. 2. 20. 16:10

📅 학습 기간: 2월 1주차!
🎯 학습 내용: 배열 (Array), 다차원 배열, Arrays 클래스, ArrayList


📌 1. 배열 (Array)

💡 배열이란?

  • 같은 타입의 여러 변수를 하나의 집합으로 묶어서 처리하는 구조
  • 데이터를 연속적으로 저장하며 순서(index)와 중복을 허용
  • 요소(Element): 배열에서 각각의 데이터를 의미

✅ 배열 선언

int[] scores;  // 정수형 데이터를 담을 수 있는 배열

✅ 배열 생성

scores = new int[3];  // 요소의 개수가 3개인 배열 생성
System.out.println(scores);  // [I@2f92e0f4 (주소값 출력)

✅ 배열 초기화 및 사용

int[] scoreList = new int[] {90, 85, 75};
System.out.println(scoreList[0]);  // 90

📌 2. 향상된 for문 (for-each)

💡 배열을 순회(탐색)하는 간결한 방법

for (int score : scores) {
    System.out.println(score);
}

📌 3. 다차원 배열 (Multi-Dimensional Array)

💡 배열의 배열 (2차원, 3차원 등)

  • 데이터를 테이블 형태로 구성할 때 유용
  • 게임 보드, 데이터 분석, 그래픽 등에 사용

✅ 2차원 배열 선언 및 초기화

int[][] matrix = new int[3][3];
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;

✅ 다차원 배열 출력

for (int[] row : matrix) {
    for (int value : row) {
        System.out.print(value + " ");
    }
    System.out.println();
}

📌 4. Arrays 클래스

💡 배열을 조작하는데 유용한 기능들을 제공하는 자바 내부 클래스

✅ 배열 정렬 (오름차순)

Arrays.sort(numbers);
System.out.println(numbers[0]);  // 1

✅ 배열 변환 (문자열 변환)

System.out.println(Arrays.toString(numbers));  // [1, 2, 3, 4, 5]

✅ 배열 검색

System.out.println(Arrays.binarySearch(numbers, 3));  // 2

✅ 배열 비교

System.out.println(Arrays.equals(numbers, numbers2));  // false

✅ 배열 채우기

Arrays.fill(examples, 10);
System.out.println(Arrays.toString(examples));  // [10, 10, 10]

📌 5. ArrayList (동적 배열)

💡 Java의 동적 배열 구현체

  • 크기 제한 없이 동적으로 요소 추가/삭제 가능
  • Java Collection Framework의 일부 (java.util.ArrayList)

✅ ArrayList 생성 및 사용

ArrayList<Integer> list = new ArrayList<>(10);

for (int i = 0; i < 10; i++) {
    list.add(i + 1);
}

System.out.println("원본 리스트: " + list);  // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

✅ 요소 삭제 후 짝수만 남기기

for (int i = 0; i < list.size(); i++) {
    if (list.get(i) % 2 != 0) {
        list.remove(i);
        i--;  // 요소 삭제 후 인덱스 조정
    }
}

System.out.println("짝수 리스트: " + list);  // [2, 4, 6, 8, 10]

✅ 특정 위치에 요소 추가

list.add(3, 50);
System.out.println(list);  // [2, 4, 6, 50, 8, 10]

🎯 소감

📌 배열 개념을 다시 정리하면서 확실히 이해할 수 있었다!
📌 다차원 배열과 ArrayList도 많이 활용해봐야겠다.


🚀 마무리

배열과 컬렉션을 이해하는 것은 효율적인 데이터 관리의 핵심!