본문으로 건너뛰기
Java 기초집LESSON 18

컬렉션 기초: ArrayList와 List로 기록 목록 관리하기

난이도입문 → 초급
예상 시간35분
선수지식이전 강의

18강. 컬렉션 기초: ArrayList와 List로 기록 목록 관리하기

1. 이번 강의에서 해결할 문제

기록 수를 미리 알 수 없는데 배열을 사용하면 크기 변경과 복사가 필요합니다. 추가·조회가 자연스러운 동적 목록이 필요합니다.

2. 학습 목표

3. 핵심 개념

List는 순서와 중복을 허용하는 컬렉션 계약이고 ArrayList는 배열 기반 구현입니다. 변수 타입을 List로 두면 호출 코드는 구현 세부보다 필요한 동작에 의존합니다. 원시 int는 컬렉션에서 Integer로 오토박싱됩니다.

4. 단계별 실습

1. src/ListRecords.java 작성

실행 환경: 코드 편집기

실행 위치: C:\dev\game-records

실행 전 확인: 같은 이름의 기존 파일이 있다면 덮어쓰기 전에 Git diff와 이번 강의 변경 범위를 확인합니다.

대상 파일: src/ListRecords.java

src/ListRecords.java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

record GameRecord(String playerName, int score) {}

public class ListRecords {
public static void main(String[] args) {
List<GameRecord> records = new ArrayList<>();
records.add(new GameRecord("Alice", 1300));
records.add(new GameRecord("Bob", 900));
records.add(new GameRecord("Alice", 1450));

for (GameRecord record : records) System.out.println(record);
records.stream().max(Comparator.comparingInt(GameRecord::score))
.ifPresent(top -> System.out.println("최고: " + top));
System.out.println("기록 수: " + records.size());
}
}

2. PowerShell에서 컴파일·실행

실행 환경: Windows PowerShell

실행 위치: C:\dev\game-records

실행 전 확인: java -versionjavac -version이 선택한 LTS JDK를 가리키고, 소스 파일명이 public 클래스명과 일치하는지 확인합니다.

대상: 이 강의의 .java 파일, out의 class 파일과 명시된 출력 파일

Windows PowerShell
Set-Location C:\dev\game-records
javac -d out .\src\ListRecords.java
java -cp out ListRecords

예상 결과: 입력 순서대로 세 기록, 최고 점수 기록과 전체 개수가 출력됩니다.

5. 코드가 동작하는 이유

ArrayList는 추가 순서를 유지하고 같은 플레이어 기록도 중복 저장합니다. max는 빈 목록일 수 있어 Optional을 반환하며 ifPresent가 값이 있을 때만 출력합니다.

6. 자주 하는 실수와 해결법

7. 직접 실습

8. 이해 점검 질문 3개

9. 핵심 요약

MINI QUIZ

컬렉션 기초: ArrayList와 List로 기록 목록 관리하기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“컬렉션 기초: ArrayList와 List로 기록 목록 관리하기” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2“컬렉션 기초: ArrayList와 List로 기록 목록 관리하기”에서 ‘빈 목록에서 최고값을 강제로 꺼내기’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. 컬렉션 기초: ArrayList와 List로 기록 목록 관리하기 미완료 상태