본문으로 건너뛰기
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 -version과 javac -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로 기록 목록 관리하기 미완료 상태