본문 바로가기
IT/자바 Java

자바 배열과 ArrayList HashMap 언제 무엇을 써야 할까?

by SidePower 2024. 11. 22.

 

이번에는 배열과 컬렉션 프레임워크에요.

데이터를 효율적으로 저장하고 관리하는 법을 배우면,

프로그램을 훨씬 더 깔끔하고 편하게 짤 수 있답니다.

 

오늘은 학생 성적 관리 프로그램을 만들어 보면서

Array, ArrayList, HashMap을 활용해 볼 거예요.

 

이걸 잘 익혀두면 실전에서도 엄청 유용하니까 끝까지 따라와 주세요!

 

배열과 ArrayList

배열(Array)은 같은 종류의 데이터를 고정된 크기로 저장하는 자료구조에요.

하지만 크기를 바꿀 수 없다는 게 단점이라 ArrayList를 주로 많이 사용해요

 

배열(Array) 사용 예제

public class ArrayExample {
    public static void main(String[] args) {
        int[] scores = {90, 85, 78, 92};
        
        for (int i = 0; i < scores.length; i++) {
            System.out.println("Score " + (i + 1) + ": " + scores[i]);
        }
    }
}

이 코드는 학생의 점수를 배열에 저장하고, 각 점수를 출력하는 예제에요.

배열의 단점: 크기를 미리 정해야 하고 추가, 삭제가 불편해요.

 

ArrayList 사용 예제

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<Integer> scores = new ArrayList<>();
        
        scores.add(90);
        scores.add(85);
        scores.add(78);
        scores.add(92);
        
        for (int score : scores) {
            System.out.println("Score: " + score);
        }
    }
}

ArrayList는 동적으로 크기를 조절할 수 있어 배열보다 유연해요.

.add()로 데이터를 추가하고, for-each로 편리하게 순회할 수 있어요.

 

 

HashMap으로 데이터 관리하기

HashMapKey-Value 형태로 데이터를 저장하는 자료구조에요.

예를 들어, 학생 이름과 점수를 매핑해 저장하면 빠르게 조회할 수 있죠.

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> studentScores = new HashMap<>();
        
        studentScores.put("Alice", 95);
        studentScores.put("Bob", 82);
        studentScores.put("Charlie", 88);
        
        System.out.println("Alice's Score: " + studentScores.get("Alice"));
    }
}

Alice라는 학생의 점수를 빠르게 조회할 수 있어요.

데이터를 추가할 때는 .put(), 조회할 때는 .get()을 사용해요.

 

학생 성적 관리 프로그램 구현하기

이제 위에서 배운 ArrayList와 HashMap을 사용해서

학생 성적 관리 프로그램을 만들어 볼까요?

import java.util.ArrayList;
import java.util.HashMap;

public class StudentGrades {
    public static void main(String[] args) {
        ArrayList<HashMap<String, Object>> students = new ArrayList<>();
        
        // 학생 추가
        students.add(createStudent("Alice", 95));
        students.add(createStudent("Bob", 82));
        students.add(createStudent("Charlie", 88));
        
        // 학생 목록 출력
        for (HashMap<String, Object> student : students) {
            System.out.println(student.get("name") + "'s Score: " + student.get("score"));
        }
    }
    
    public static HashMap<String, Object> createStudent(String name, int score) {
        HashMap<String, Object> student = new HashMap<>();
        student.put("name", name);
        student.put("score", score);
        return student;
    }
}

이 프로그램은 ArrayList에 여러 학생을 HashMap 형태로 저장해요.

학생마다 이름과 점수를 담은 HashMap을 만들고, ArrayList에 넣어서 관리하죠.

 

 

정리

배열과 컬렉션 프레임워크는 자바에서 데이터를 효율적으로 다루기 위한 필수 개념이에요.

  • 배열은 크기가 고정된 데이터에 적합하고,
  • ArrayList는 크기가 유동적인 데이터에 강력해요.
  • HashMap은 Key-Value 쌍으로 저장할 때 유용하죠.

이제 여러분도 데이터를 저장하고 관리하는 다양한 방법을 배웠으니,

실제 프로젝트에서 멋지게 활용해 보세요!

반응형

댓글