💡JCF, Java Collection Framework
컬렉션은 자료구조이자 무언가를 모아놓은 집합(배열)이며, 기존의 배열에서 향상된 배열을 의미한다.
기존의 순수 배열에서 사용법을 개량하거나 용도에 따른 입출력 방식 또는 효율성을 높였다는 특징이 있으며, 어떤 분야에서 배열을 특화시켰느냐에 따라 종류가 굉장히 많다.
또한 컬렉션은 클래스와 내부 순수 배열을 가지고 있으며, 길이가 가변적이어서 방의 개수를 마음대로 늘이고 줄이는게 가능하다는 장점이 있다.
컬렉션을 읽는 방법
- Array + List
- Linked + List
- Hash + Map
- Tree + Map
- Hash + Set
- Tree + Set
앞에 단어는 물리 구조(메모리의 모양)를 나타내고, 뒤에 단어는 인터페이스(사용법)을 나타낸다.
💡컬렉션의 종류
컬렉션에는 크게 3가지 계열이 있으며, 각각의 List, Set, Map은 인터페이스를 의미한다.
이때 legacy는 너무 오래되었거나 대체할 수 있는 기능이 생겨서 지금은 잘 사용하지 않는 기능이다.
- List: ArrayList, LinkedList, Queue, Stack, Vector (legacy)
- Set: HashSet, TreeSet
- Map: HashMap, TreeMap, Properties (legacy), HashTable (legacy)
1. List Interface
- ArrayList
[Java] List Interface: ArrayList Class
순수 배열과 ArrayList 클래스 모두 데이터 요소를 저장하고 관리할 때 사용한다. 순수 배열은 크기가 고정되어 있어 데이터의 추가에 제약이 있고 삭제가 불가능하지만, ArrayList 클래스는 배열의
isaac-christian.tistory.com
- LinkedList
[Java] List Interface: LinkedList Class
💡LinkedList Class Collection(I) > List(I) > ArrayList(C), LinkdedList(C) ArrayList vs LinkedList ArrayList와 LinkedList는 겉으로 보기에 사용법은 같지만, 내부 구조가 완전히 다르다. 이때 내부 구조가 다르다는 말은 사
isaac-christian.tistory.com
- Queue
[Java] List Interface: Stack Class, Queue Interface
💡Stack Class Stack 클래스는 한쪽이 막혀있는 파이프 구조를 떠올리면 된다. 후입선출 방식(LIFO, Last Input First Output)으로, 저장소에 나중에 들어간 요소가 가장 먼저 나온다. Stack을 활용한 예로는
isaac-christian.tistory.com
- Stack
[Java] List Interface: Stack Class, Queue Interface
💡Stack Class Stack 클래스는 한쪽이 막혀있는 파이프 구조를 떠올리면 된다. 후입선출 방식(LIFO, Last Input First Output)으로, 저장소에 나중에 들어간 요소가 가장 먼저 나온다. Stack을 활용한 예로는
isaac-christian.tistory.com
- Vector (legacy)
2. Set Interface
- HashSet
[Java] Set Interface: HashSet Class
💡HashSet Class Set 인터페이스는 순서가 없는 데이터 집합으로, 요소를 구분하는 식별자가 없다는 특징이 있다. 방을 식별하는 번호나 식별자가 없다는 말은 똑같은 데이터가 2개 들어 있으면 데
isaac-christian.tistory.com
- TreeSet
[Java] Set Interface: TreeSet Class
💡TreeSet Class Tree 구조는 이진 트리 구조(이진 탐색 트리, BinarySearch Tree)를 의미하며, Set은 순서가 없고 중복값을 가지지 않음을 의미한다. 그런데 Tree 구조는 정렬이 되어 있다는 특징이 있다. Tre
isaac-christian.tistory.com
3. Map Interface
- HashMap
[Java] Map Interface: HashMap Class
💡HashMap Class HashMap Class는 요소에 접근할 때 키(key)를 사용하는 방식이다. 이때 방 번호가 없다는 말은 순서가 없다는 뜻이기도 하다. 여기서 key는 강의실 5개가 있다고 할 때, 햇님반, 달님반, 별
isaac-christian.tistory.com
- TreeMap
[Java] Map Interface: TreeMap Class
💡TreeMap Class HashMap은 정렬이 안 되는 반면, TreeMap은 정렬이 된다는 차이가 있다. Tree 구조는 이진 탐색 트리로 자동 정렬이 되며, Map은 키 + 값의 연관 배열로 배열을 사용한다는 것을 의미한다. T
isaac-christian.tistory.com