본문 바로가기
Back-end/JAVA & Spring

[Java] Collection이란? Collection 개념, Collection Framework 구조

by 꼬바리 2021. 5. 11.

Collection Framework 이란?

1. collection

2. map

>> 크게 이 두 가지를 만들기 위한 인터페이스들, 인터페이스를 구현한 클래스들, 그리고 관련 알고리즘.

( A framework, by definition, is a set of interfaces that force you to adopt some design practices.)

 

Framework 쉽게 말하면 인터페이스 집합으로, 개발자의 설계 구현을 도와주는 밑바탕이라 생각하면 .

 

, collection framework collection 자료구조들을 구현할  있도록 도와주는 인터페이스 도구들이다.

 

우리는 이제  framework에서 깔아준 밑바탕 인터페이스들과 이걸 implement 클래스들(ArrayList, LinkedList) 이용해서 원소를 추가, 삭제, 삽입, 조회 등을 쉽게   있음.

 

The Java Collection Framework package (java.util) contains:

A set of interfaces,

Implementation classes, and

Algorithms (such as sorting and searching).

 

>> C++ Collection Library STL(Standard Template Library)

 

Collection Framework is as shown below: 


[출처] http://www.ntu.edu.sg/home/ehchua/programming/java/J5c_Collection.html#zz-2.


1) Collection

Collection 객체는 여러 원소들을 담을 수 있는 자료구조를 뜻한다

배열과 비슷하지만, 원소들을 계속 넣을 수 있는 봉투(resizable)

 (ex: Array List, Queue, Stack, Linked List … )

 

>> 배열과의 차이점

- 크기에 제한이 없다

new int[4]하면 4개 공간밖에 못쓰지만

collection은 공간이 계속 필요한 만큼 추가될 수 있음

 

>> Collection의 종류  크게 두 가지

1. list

>> 원소들을 넣을 때 순서가 있는 collection list라고 한다

2, set

>> 수학적 의미의 집합의 개념으로 원소를 포함.

 - 동일한 내용의 원소 집어넣을 수 없음 (집합의 개념이니까)

 - list에는 중복된 내용 들어갈 수 있음.

 

>> 따라서, 중복된 원소들을 원치 않을 때에는 set을 사용

>> 데이터의 입출력 순서가 중요한 경우에는 list를 사용

 


2) Map

- key(유일한 값) value(중복될 수 있음)의 쌍

ex) id/password, 주민번호/이름.

  Id, 주빈번호는 중복되면 안됨(유일한 값), but password, 이름은 중복되어도 상관없음(value)

 

 


 

그림 출처: http://www.ntu.edu.sg/home/ehchua/programming/java/J5c_Collection.html

 

Iterable<E> - 가장 상위 인터페이스!

Iterable<E> - iterator()메소드! - Iterator<E> 객체가 반환됨

Iterator<E> 인터페이스 객체: 콜렉션 안의 원소 하나하나에 접근하게 해주는 역할

 

List<E>는 인터페이스 - 인터페이스자체는 객체생성 ㄴㄴ

-> 이걸 implement한 클래스가 객체가 될 수 있는 것!

-> 그걸 구현한게 Abstract list 밑의 [ArrayList★], Vector, Stack, [LinkedList★]

 

>>왜 인터페이스로 만든거지? 여러 가지 특색을 가진 자료구조들이 같은 기능을 하는 경우가 많기 때문에.

이들의 공통적인 기능들을 인터페이스로 묶어줌.

 

가장 상위 인터페이스인 Iterable, 그 아래 Collection은 가장 추상적이고

그 아래의 List, Queue, Set 등 하위 인터페이스로 내려갈수록 구체적이고 특징이 드러남

ex) ArrayList 와 LinkedList는 둘 다 순서가 있는 자료구조 a 따라서 List 인터페이스로 구현함.

 

 

+) Collection 사용 예제 (ArrayList) --> http://blog.naver.com/evella/90195374603

출처 : m.blog.naver.com/PostView.nhn?blogId=evella&logNo=90195372441&proxyReferer=https:%2F%2Fwww.google.com%2F

728x90
반응형

댓글