JavaScript

웹 개발의 필수 언어

동적인 웹 페이지 구현을 위한 핵심 프로그래밍 언어.

Java

객체지향 프로그래밍

안정적이고 확장성 있는 백엔드 개발의 대표 언어.

HTML

웹의 기초

웹 페이지의 구조를 정의하는 마크업 언어.

React

현대적 UI 라이브러리

효율적인 사용자 인터페이스 구축을 위한 JavaScript 라이브러리.

CSS

웹 디자인의 핵심

웹 페이지의 시각적 표현을 담당하는 스타일 언어.

Spring

자바 웹 프레임워크

기업급 애플리케이션 개발을 위한 강력한 프레임워크.

Java/자바 학습

자바 컬렉션 프레임워크

lamarcK 2025. 5. 7. 13:56

개념 설명

컬렉션 프레임워크는 데이터 군(群)을 저장하고 관리하는 자료구조들의 표준화된 설계입니다.
(자바스크립트의 배열과 객체를 더 체계적으로 분류한 것과 유사)

주요 인터페이스:

  • List (JS의 Array와 유사): 순서가 있는 데이터 집합
  • Set: 중복을 허용하지 않는 데이터 집합
  • Map (JS의 Object와 유사): 키-값 쌍으로 이루어진 데이터 집합

비유 설명:

  • List: 줄 서있는 사람들 (순서 있음)
  • Set: 회원가입 명단 (중복 없음)
  • Map: 사물함과 열쇠 (키-값 쌍)

사용 목적

  • 데이터 구조의 표준화
  • 재사용성 증가
  • 프로그래밍 효율성 향상
  • 데이터 관리의 일관성 확보

자주하는 실수

  • 제네릭 타입 미지정
  • 동기화 처리 미흡
  • 부적절한 컬렉션 타입 선택
  • 불필요한 객체 보관으로 인한 메모리 누수

주요 컬렉션 비교표

특성 ArrayList LinkedList HashSet HashMap
순서유지 O O X X
중복허용 O O X 키:X/값:O
검색성능 빠름 느림 빠름 빠름
삽입/삭제 느림 빠름 빠름 빠름
메모리효율 높음 낮음 보통 보통

실무 활용 예시

  • 회원 목록 관리 (ArrayList)
  • 최근 조회 이력 관리 (LinkedList)
  • 중복 제거된 태그 관리 (HashSet)
  • 캐시 데이터 저장 (HashMap)
  • 우선순위 작업 대기열 (PriorityQueue)
  • 멀티스레드 환경의 데이터 공유 (ConcurrentHashMap)
  • 속성-값 매핑 (Properties)
  • 이벤트 처리 순서 관리 (LinkedList)

추가 팁:

  • 초기 용량 지정으로 성능 최적화
  • 불변 컬렉션 사용으로 스레드 안전성 확보
  • Stream API와 함께 사용하여 데이터 처리 효율화
  • 컬렉션 생성 시 예상 크기를 고려한 초기화

List (목록)

  • ArrayList, LinkedList 등
  • 특징: 순서가 있고, 중복 허용 
  • List<String> nameList = new ArrayList<>(); nameList.add("Kim"); // [Kim] nameList.add("Lee"); // [Kim, Lee] nameList.add("Kim"); // [Kim, Lee, Kim] - 중복 가능

Set (집합)

  • HashSet, TreeSet 등
  • 특징: 중복 불가, 순서 없음
    Set<String> uniqueNames = new HashSet<>();
    uniqueNames.add("Kim");  // [Kim]
    uniqueNames.add("Lee");  // [Kim, Lee]
    uniqueNames.add("Kim");  // [Kim, Lee] - 중복 안됨

Map (키-값 쌍)

  • HashMap, TreeMap 등
  • 특징: 키-값 쌍으로 저장, 키는 중복 불가
    Map<String, Integer> ageMap = new HashMap<>();
    ageMap.put("Kim", 25);  // {Kim=25}
    ageMap.put("Lee", 30);  // {Kim=25, Lee=30}
    ageMap.put("Kim", 26);  // {Kim=26, Lee=30} - 키가 같으면 값 덮어씀

실제 사용 예시:

// 회원 목록 관리
List<Member> memberList = new ArrayList<>();

// 이메일 중복 체크
Set<String> emailSet = new HashSet<>();

// 회원 ID로 회원 정보 조회
Map<String, Member> memberMap = new HashMap<>();

이런 컬렉션들은 실무에서 정말 많이 사용되는데, 데이터를 어떻게 저장하고 관리할지에 따라 적절한 컬렉션을 선택해서 사용하면 됩니다!

'Java > 자바 학습' 카테고리의 다른 글

문자 자료형과 메서드  (0) 2025.05.08
자바 제네릭  (1) 2025.05.07
자바의 예외 처리  (0) 2025.05.07
자바 접근 제어자  (0) 2025.05.01
메서드 vs 함수  (0) 2025.05.01