2025년 7월 30일 수요일(46일차)

Jeonghoon·2025년 7월 30일

jeonghoon's Study

목록 보기
48/128

🌀 Java Collection Framework · forEach문 정리


🔁 [ forEach문 ]

리스트의 각 요소를 순회하면서 실행문을 반복 수행하는 람다식 기반 반복문

항목설명
📘 기능리스트 내 요소를 반복변수에 대입하여 실행문을 반복
⚙️ 형식리스트명.forEach( (반복변수) -> { 실행문 } );
🧩 람다식 함수복잡한 함수 선언을 간소화한 표현 방식

💻 예시 코드

list.forEach((str) -> {
    System.out.println(str);
});

💡 forEachList, Set, Map 등의 컬렉션에서도 사용 가능하다.


🧱 [ 컬렉션 프레임워크 ]

자바에서 자료를 효율적으로 관리하기 위한 자료구조 기반 프레임워크

항목설명
📦 역할다양한 자료구조의 틀을 제공 (데이터 저장 및 관리)
🧩 주요 인터페이스List, Set, Map
🧱 구현체 예시ArrayList, HashSet, HashMap

📋 [ List ]

인덱스를 기반으로 순서가 있고 중복을 허용하는 자료구조

💻 선언 예시

List<타입> 변수명 = new 구현체<>();

🧩 주요 특징

특징설명
🧱 인덱스 존재순서대로 저장 가능
🔁 중복 허용동일한 데이터 저장 가능
⚙️ 배열/링크 구조배열: 빠른 접근 / 링크: 삽입·삭제 효율적

🧠 구현체 종류

구현체구조특징
🧩 ArrayList배열 구조메소드 비동기화 (단일 스레드 환경에 적합)
🔗 Vector배열 구조메소드 동기화 (멀티 스레드 환경에 적합)
🪢 LinkedList링크 구조중간 삽입/삭제에 효율적

⚙️ 주요 메소드

메소드설명
.add(자료)리스트 마지막에 요소 추가
.add(인덱스, 자료)특정 인덱스 앞에 요소 추가
.set(인덱스, 자료)특정 위치 요소 수정
.get(인덱스)특정 인덱스 요소 반환
.size()리스트 내 요소 개수 반환
.contains(자료)지정한 자료 존재 여부 확인
.indexOf(자료)자료의 인덱스 반환 (없을 시 -1)
.remove(인덱스)지정 인덱스 요소 삭제
.isEmpty()리스트가 비어있는지 여부 반환
.clear()모든 요소 삭제

🔷 [ Set ]

중복을 허용하지 않고 순서가 없는 집합 구조

💻 선언 예시

Set<타입> 변수명 = new 구현체<>();

🧩 주요 특징

특징설명
🧱 인덱스 없음순서가 없으며 중복 불가
🔗 집합형 구조고유한 값만 저장

🧠 구현체 종류

구현체특징
HashSet중복 없는 요소 저장, 빠른 검색 속도
🌳 TreeSet중복 없는 요소 저장 + 자동 정렬 (오름차순)
🔗 LinkedHashSet중복 없는 요소 저장 + 링크 기반 (느림)

⚙️ 주요 메소드

메소드설명
.add(자료)요소 추가 (중복 시 무시됨)
.size()요소 개수 반환
.contains(자료)특정 요소 존재 여부 반환
.remove(자료)특정 요소 삭제
.isEmpty()비어 있는지 여부 확인
.clear()모든 요소 삭제
🔄 향상된 for문 가능for(String s : set){} 형태로 순회 가능

🗂️ [ Map ]

Key + Value 쌍으로 구성된 자료구조 (순서 없음)

💻 선언 예시

Map<key타입, value타입> 변수명 = new 구현체<>();

🧩 주요 특징

특징설명
🔑 Key-Value 구조Key는 중복 불가, Value는 중복 가능
⚙️ JSON 유사 구조Java에는 JSON이 없기 때문에 Map이 비슷한 역할 수행
🧱 Entry 단위 저장Key와 Value를 한 쌍으로 저장

🧠 구현체 종류

구현체특징
🧩 HashMap가장 일반적인 Map 구조
🧱 HashTable동기화된 Map 구조 (멀티스레드 환경에 적합)
🌳 TreeMapKey 기준 자동 정렬 (오름차순)
⚙️ Properties제네릭 없는 Map 구조 (설정 파일 등에서 사용)

⚙️ 주요 메소드

메소드설명
.put(key, value)Key와 Value를 한 쌍으로 저장 (Key 중복 시 덮어씀)
.get(key)Key에 해당하는 Value 반환
.size()Entry(쌍) 개수 반환
.remove(key)지정한 Key의 Entry 삭제
.contains(key/value)특정 Key 또는 Value 존재 여부 반환
.clear()모든 Entry 삭제
.isEmpty()비어있는지 여부 반환
.entrySet()모든 Entry를 Set으로 반환
.keySet()모든 Key를 Set으로 반환
.values()모든 Value를 List로 반환

0개의 댓글