본문 바로가기
JAVA/자바와 데이터 다루기

ArrayList, HashMap 사용해보기

by DEVLIB 2025. 4. 13.
728x90

1. ArrayList란?

순서가 있는 데이터 목록, 중복 허용, 크기 자동 증가

기본 사용 예제

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> names = new ArrayList<>();

        names.add("철수");
        names.add("영희");
        names.add("민수");

        for (String name : names) {
            System.out.println("이름: " + name);
        }
    }
}

2. HashMap이란?

**키(Key)와 값(Value)**을 짝지어서 저장하는 자료구조
순서는 없지만, 빠르게 검색 가능!

기본 사용 예제

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> scores = new HashMap<>();

        scores.put("철수", 90);
        scores.put("영희", 85);
        scores.put("민수", 78);

        System.out.println("영희의 점수: " + scores.get("영희"));

        for (String name : scores.keySet()) {
            System.out.println(name + "의 점수: " + scores.get(name));
        }
    }
}

3. ArrayList + HashMap 함께 사용하기

학생 여러 명의 정보를 각각 HashMap으로 저장하고, ArrayList에 모아 관리

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

public class StudentManager {
    public static void main(String[] args) {
        ArrayList<HashMap<String, String>> studentList = new ArrayList<>();

        // 첫 번째 학생
        HashMap<String, String> s1 = new HashMap<>();
        s1.put("이름", "철수");
        s1.put("학번", "2023001");
        s1.put("학과", "컴퓨터공학");
        studentList.add(s1);

        // 두 번째 학생
        HashMap<String, String> s2 = new HashMap<>();
        s2.put("이름", "영희");
        s2.put("학번", "2023002");
        s2.put("학과", "정보보안");
        studentList.add(s2);

        // 전체 출력
        for (HashMap<String, String> student : studentList) {
            System.out.println("학생 정보:");
            System.out.println("이름: " + student.get("이름"));
            System.out.println("학번: " + student.get("학번"));
            System.out.println("학과: " + student.get("학과"));
            System.out.println();
        }
    }
}

언제 어떤 걸 써야 할까?

자료구조 사용 목적 예시
ArrayList 순서대로 저장, 인덱스로 접근 학생 목록, 쇼핑카트
HashMap 키로 빠르게 조회 이름 → 점수, ID → 객체
둘 다 여러 개의 데이터를 묶고 관리할 때 학생 목록 + 상세 정보

실습 아이디어

  • 과목별 점수 관리 (HashMap<String, Integer>)
  • 상품 목록 (ArrayList<HashMap<String, String>>)
  • 연락처 관리 시스템 (HashMap<String, String> 이름 → 전화번호)

주요 메서드 정리

ArrayList

메서드 설명
add() 요소 추가
get(i) i번째 요소 가져오기
size() 리스트 크기
remove(i) i번째 요소 제거

HashMap

메서드 설명
put(key, value) 키-값 저장
get(key) 키에 해당하는 값 조회
keySet() 모든 키 반환
containsKey(key) 해당 키 존재 여부
LIST

'JAVA > 자바와 데이터 다루기' 카테고리의 다른 글

컴파일 오류 vs 런타임 오류  (0) 2025.04.13
반복문과 함께 사용하기  (0) 2025.04.13
BufferedReader, FileWriter 사용법  (0) 2025.04.13
파일 쓰기/읽기  (0) 2025.04.13