컬렉션 프레임워크(List, Set, Map)

컬렉션 프레임워크란?

  • 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것
  • 인터페이스(interface)를 사용하여 구현

 

컬렉션 프레임워크 주요 인터페이스

컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 List 인터페이스, Set 인터페이스, Map 인터페이스로 구분되어 있으며, List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의


List

저장된 요소들의 순서가 보장되고 데이터 중복이 가능하며 인덱스(index) 번호에 의해 정렬됩니다.

 

List의 특징

  1. 리스트(List)는 컬렉션(Collection) 인터페이스 중 하나이다.
  2. 리스트(List)는 두 개의 종류로 나눠진다.
    • ArrayList → 배열로 이루어진 리스트(List)
    • LinkedList
  3. 리스트(List)는 크기 조절이 가능하다. → 내부적으로 자동으로 크기를 조절
  4. 리스트(List)는 초기 크기를 지정하지 않아도 된다. ↔ 배열은 초기에 크기가 정해진다.
  5. 리스트(List)에 삭제는 공간을 지우는 것이다.

 

List 기능

  1. 삽입: List.add(값);
  2. 중간 삽입: List.add(index, value); : index: 삽입할 인덱스, value: 값.
    → 중간에 값을 넣을 경우 중간에 넣은 값 이후에 값들은 한 칸씩 밀리게 됩니다
  3. 치환: List.set(index, value); : 중간 삽입 유사하며 index: 인덱스, value: 값
  4. 삭제: List.remove(index); : 인덱스 위치 값을 삭제
  5. 전체 삭제: List.clear(); 모든 요소 삭제
  6. 조회: List.get(index) : 인덱스 위치 요소 값 조회
  7. 크기: List.size() : 리스트에 크기를 알 수 있다.

Set

Set은 집합을 뜻하며, 순서가 없고 중복을 허용하지 않으며 집합 연산인 합집합, 교집합, 차집합의 연산이 가능

 

Set의 특징

  1. Set은 컬렉션(Collection) 인터페이스 중 하나이다.
  2. Set는 두 개의 종류로 나눠진다.
    • HashSet
    • TreeSet

 

Set 기능

  1. 삽입: Set.add(값);
  2. 제거: Set.remove(값);
  3. 크기: Set.size(); : Set에 크기를 반환한다.
  4. Set에 요소가 있는지 없는지 판단: Set.isEmpty(); → true / false
  5. 지정한 값이 Set 안에 있는지 판단: Set.contains(값); → true / false

Map

Map은 key-value 쌍의 형태로 이루어져 있으며 검색 성능에 유리한 자료구조이다.

 

Map의 특징

  1. 키(key)와 값(value)의 쌍으로 이루어져 있다.
  2. 순서가 없다.
  3. 키 중복 불가 → 중복 시 마지막으로 저장된 값이 저장된다.
  4. 값 중복 가능
  5. 키는 값을 조회하기 위한 인덱스로 사용
  6. 키는 set에 저장된다.
  7. 검색을 하는 목적으로 많이 사용된다.

Map 기능

  1. 삽입: Map.put(key, value);
  2. 수정(치환): Map.put(key, 새로운 값); :
  3. 값 조회: Map.get(key);
  4. 삭제: Map.remove(key));
  5. size: Map.size(); : Map에 사이즈를 반환
  6. key 존재 여부: Map.containsKey() → true / false
  7. 값 존재 여부: Map.containsValue() → true / false

 

HashMap

Map인터페이스에 속해있는 컬렉션으로 HashMap은 해싱(Hashing)된 맵(Map)으로 사용법이 거의 동일한 컬렉션(Collection)에는 Hashtable이 있으며 두 클래스의 차이점은 Thread 관점에서 안전하냐(Hashtable), 안전하지 않은 대신 속도가 빠르냐(HashMap)이다.

 

참고자료

코딩의 시작, TCP School

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

[자바]List(컬렉션) (velog.io)

 

[자바]List(컬렉션)

목차 리스트(List)란?리스트(List)의 특징리스트(List) 사용 방법리스트(List) 예제리스트(List)란 저장된 요소들의 순서가 있고 데이터에 중복이 가능하고 인덱스(index) 번호에 의해서 정렬됩니다. (배

velog.io

JAVA HashMap 과 동시성 (tistory.com)

 

JAVA HashMap 과 동시성

Note that this implementation is not synchronized. If multiple threads access a hash map concurrently, and at least one of the threads modifies the map structurally, it must be synchronized externally. Java 의 HashMap 은 Thread Safe 하지 않기 때문

woooongs.tistory.com

 

'P.L > Java' 카테고리의 다른 글

Generics  (0) 2023.05.10
열거형(enums)  (0) 2023.03.26
유용한 배열 사용 - java.util.Arrays 클래스  (0) 2023.02.08
예외처리(Exception handling)  (0) 2023.02.01
java.lang.Character 클래스  (0) 2023.01.28