스터디 /1.Java

Collection Framework

Gongdile 2018. 5. 27. 21:28

지금부터


컬렉션프레임워크에 대해서 정리해나갈예정이다

세세하게 훑고가기전에


먼저 기본적인 개념과

그리고 어떻게 사용하는지

그리고 세세한 개념

그런 방식으로 정리해갈 예정이다.


컬렉션프레임웍--> 데이터군을 저장하는 클래스들을 표준화한 설계를 뜻한다.


컬렉션(Colletion은 다수의 데이터, 즉 데이터 그룹을

프레임웍은 표주화된 프로그래밍 방식을 의미한다.


----

컬렉션 프레림웍은 컬렉션, 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공하기 때문에

프로그래머의 짐을 상당히 덜어주고 있음!


--


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

컬렉션 프레임웍에서는 컬렉션데이터그룹을 크게 3가지 타입이 존재한다고인식하고,

각 컬렉션을 다루는데 필요한 기능을 가진3개의 인터페이스를 정의한다


그리고 인터페이스 List와 Set의 공통된 부분을 다시뽑아서 새로운 인터페이스인(Collection)을 추가로 정의하였다.


Map, List, Set

(List,Set) -->Collection


리스트->순서가있는 데이터의 집합, 데이터의 중복을 허용한다. ex)대기자명단

-->ArrayList, LinkedList, Stack , Vector


셋-->순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. ex)양의정수집합, 소수의집합

-->HashSet,TreeSet


맵-> 키와 값의 쌍(pair)으로 이루어진 데이터의 집합 

순서는 유지되지않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.

ex)우편번호, 지역번호(전화번호)


-->HashMap, TreeMap, Hashtable,Properties등 


각인터페이스의 특징과 차이를 잘이해하고있어야한다. 

컬렉션프레임웍의 모든클래스들은 저중의 하나를 구현하고있으며 

구현한 인터페이스의 이름이 클래스에 포함되어있어서 이름만으로 클래스의 특징을 알수있도록 했는데


Vector, Stack, Hashtable, Properites와 같은 클래스는 컬렉션 프레임웍이 만들어지기 전부터 존재하던 것이라

컬렉션 프레임웍의 명명법을 따르지 않는다.


벡터나 해쉬테이블같은건 기존의 컬렉션 클래스들은 호환위해

설계변경위해 남겨뒀지만 그대신 

새로 추가된 어레이리스트와 해쉬맵을 사용하자 



리스트와 셋의 조상인 컬레견 인터페이스에는 메서드들이 정의되어있는데, 

컬랙션 클레스에서 저장된 데이터 읽고 추가하고 삭제하는등 컬렉션을 다루는데 가장 기본적인 메서드들을 정의하고았음.

-------------------------------------

리스트인터페이스는

중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용된다.


중복허용!!!, 저장순서유지!! 


------------------------------

셋인터페이서는 중복을 허용하지않고 저장순서가 유지되지않는 컬렉션 클래스를 구현하는데 사용


-------------

맵인터페이스 

키 값을 하나의쌍으로 묶어서 저장하는 컬렉션 클래스 구현하는데 사용 

키는 중복될수없지만 값은 중복허용 

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

-----------------------

Map.Entry인터페이스 Map인터페이스의 내부인터페이스다.

내부클래스와같이

인터페이스도 인터페이스안에  인터페이스를 정의하는 내부인터페이스를 정의하는것도 가능하다.

------------