본문 바로가기
멀티캠퍼스 풀스택 과정/Java의 정석

자바의 정석8-1 컬렉션프레임워크(List, Set, Map)

by 이쟝 2022. 1. 8.

컬렉션프레임워크(Collections Framework) 

- 컬렉션(collection): 여러 객체(데이터)를 모아 놓은 것을 의미

- 프레임워크(framework): 표준화, 정형화된 체계적인 프로그래밍 방식 (자바는 spring)

 

- 컬렉션 프레임워크(collections framework)

- 컬렉션(다수의 객체)을 다루기 위한 표준화(틀)된 프로그래밍 방식

- 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공(객체를 다룬다 -> 저장, 삭제, 검색, 정렬)

- java.util패키지에 포함

 

- 컬렉션 클래스(collection class)

- 다수의 데이터를 저장할 수 있는 클래스( Vector, ArrayList, HashSet)

 

 


컬렉션 프레임웍의 핵심 인터페이스

1) List 2) Set 3) Map

 

인터페이스 특징
List
순서o중복o
(저장)순서가 있는 데이터의 집합. 데이터의 중복허용한다.
구현클래스: ArrayList, LinkedList, Stack, Vector
Set
순서x중복x
순서를 유지하지 않는 데이터의 집합. 데이터의 중복허용하지 않는다.
구현클래스: HashSet, TreeSet, SortedSet
Map
순서x
중복(xo)
(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합. 순서는 유지되지 않으며, 중복을 허용하지 않, 중복을 허용한다. ) 우편번호, 지역번호(전화번호), id password 두 개의 데이터를 한 쌍으로 묶어놓은 것
구현클래스: HashMap, TreeMap, Hashtable, Properties

 

컬렉션 프레임웍의 인터페이스


Collection인터페이스

-> ListSet의 공통부분을 모아서 Collection이라는 인터페이스 정의

 

Collection인터페이스의 메서드

 

 

- Collection인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고, 추가하고 삭제하는 컬렉션을 다루는데 가장 기본적인 메서드들을 정의


1. List인터페이스 – (저장)순서 O, 중복 O

 

핵심클래스: ArrayList와 LinkedList

 

*List인터페이스의 메서드 – Collection인터페이스와 비슷함

 

 

더보기

get 읽어오는 것, set 변경하는 것

검색: indextOf는 왼쪽에서 오른쪽으로 lastIndexOf는 오른쪽에서 왼쪽으로

sort: 정렬 subList: 일부만 뽑아내는 것(전체에서) From ~ to


2. Set인터페이스 – (저장)순서 X, 중복 X

 

대표적인 클래스 -> HashSet, TreeSet

 

*Set인터페이스의 메서드 – Collection인터페이스와 비슷함

 

 

*집합과 관련된 메서드(Collection에 변화가 있으면 true, 아니면 false를 반환: Boolean 반환)

 

 


3. Map인터페이스 순서X, 중복(X, O)

 

Map 인터페이스의 핵심 HashMap, TreeMap

 

- LinkedHashMap(순서가 있음)

- Hashtable(옛날버전) HashMap(현재)은 같다. Hashtable은 동기화가 되어있고, HashMap은 동기화 되어있지 않음

- 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게 된다.

 

* 맵 인터페이스의 메서드

 

 

추가(put, putAll) 삭제(remove)
검색(containsKey, containsValue, get) 읽기(Set entrySet( ), Set KeySet( ), Collection values( ))

 

- Map인터페이스에서 values는 중복을 허용하기 때문에 반환타입이 Collection(List+set, List는 중복 허용, set은 중복 허용 xx)이고, key는 중복을 허용하지 않기 때문에 반환타입이 Set!