본문 바로가기

Java/공부공부

[자바기초] 자바의 자료구조 (컬렉션 프레임워크_Collection Framework)

 

https://www.tcpschool.com/java/java_collectionFramework_concept

 

코딩교육 티씨피스쿨

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

tcpschool.com

 


 

* 컬렉션 프레임워크 (Collection Framework) 

자바에서 데이터를 효과적으로 저장하고 관리하기 위한 표준화된 구조와 인터페이스의 집합.

java.util 패키지에서 제공.

 

https://phyho.tistory.com/64

 

 


 

[ 주요 인터페이스 ]

 

1. List 인터페이스 : 순서가 있는 데이터를 저장, 중복된 원소 허용.

  ArrayList, LinkedList, Vector, Stack, Queue 등

 

2. Set 인터페이스 : 순서가 없는 데이터를 저장, 중복된 원소 허용X

  HashSet, LinkedHashSet, TreeSet 등

 

3. Map 인터페이스 : 키와 값의 쌍으로 데이터를 저장, 각 키는 유일해야 하며, 값은 중복될 수 없음.

  HashMap, LinkedHashMap, Hashtable, TreeMap 등

 

 

 


 

* 컬렉션 클래스 (Collection Class)

컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스.

 


 

[ List 컬렉션 클래스 ]

 

 - 요소의 저장 순서 유지. (인덱스로 접근)

 - 요소의 중복 저장 가능. (null 저장 가능.)

 

 

1. ArrayList<E>  * 가장 많이 사용 *

내부적으로 배열을 이용하여 요소를 저장.

List<String> list = new ArrayList<String>();
List<String> list = new ArrayList<>();

 

 

* 참고 *

 


 

2. LinkedList<E>

내부적으로 연결 리스트(linked list)를 이용하여 요소를 저장. 

배열과 다르게 저장된 요소가 비순차적으로 분포되며, 요소들은 링크(link)로 연결됨.

List<String> lnkList = new LinkedList<String>();
List<String> lnkList = new LinkedList<>();

 

 - 단일 연결 리스트 (singly linked list)

각 노드는 데이터 필드, 다음 노드를 가리키는 참조(링크)로 이루어져 있음. 

 

 - 이중 연결 리스트 (doubly linked list)

각 노드는 데이터 필드, 이전 노드를 가리키는 참조, 다음 노드를 가리키는 참조(링크)로 이루어져 있음. 

 


 

3. Vector<E>

ArrayList와 동일한 내부 구조.

동기화된(synchronized) 메소드로 구성되어 있기 때문에 멀티 스레드가 동시에 Vector 의 메소드들을 실행할 수 없음.

List<Integer> vec = new Vector<Integer>();
List<Integer> vec = new Vector<>();

 


 

[ Set 컬렉션 클래스 ]  _ 집합

 

 - 요소의 저장 순서 유지X.

 - 요소의 중복 저장 허용X. (하나의 null만 저장.)

 

 

1. HashSet<E>  * 가장 많이 사용 *

Set<String> set = new HashSet<String>();
Set<String> set = new HashSet<>();

 

 


 

[ Map 컬렉션 클래스 ]

 

 - key - value 형식으로 값을 저장. (키와 값은 모두 객체)

 - 요소의 저장 순서 유지X.

 - key값 중복 허용X, value값 중복 허용.

 

 

1. HashMap<K, V>  * 가장 많이 사용 *

Map<String, Integer> map = new HashMap<String, Integer>();
Map<String, Integer> map = new HashMap<>();

 

 

* 자바의 컬렉션들은 Iterator 인터페이스를 구현하고 있음.

    iterator() 메소드를 통해 요소 출력.