[JAVA] Collection

kjihye0340·2021년 5월 5일
0

java

목록 보기
3/9

Collection Framework

데이터를 효율적으로 저장하는 자료구조들의 집합
크게 List, Set, Map으로 나뉜다.
각 자료구조들의 클래스는 제네릭으로 표현됨

주요 method

List

순서가 있는 데이터의 집합으로, 중복이 허용 된다.

ArrayList

인덱스로 원소를 관리하며 배열과 유사한 리스트
용량이 꽉 찼을 경우 더 큰 용량의 배열을 새로 만들어 기존의 원소들을 새 배열로 옮기는 작업 진행

LinkedList

각 노드마다 양방향으로 연결되어있는 리스트

+ ArrayList와 LinkedList의 차이점

특징ArrayListLinkedList
검색O(1)(index로 접근)O(N)(일일이 탐색)
삽입O(N)(한 칸씩 데이터를 옮겨야됨)O(1)(맨 앞 혹은 맨 뒤) or O(n)
삭제O(N)(한 칸씩 데이터를 옮겨야됨)O(1)(맨 앞 혹은 맨 뒤) or O(n)

Stack

LIFO(Last In First Out) 구조의 리스트

Queue

FIFO(First In First Out) 구조의 리스트

Set

순서가 없는 데이터의 집합으로, 중복이 허용되지 않는다.

HashSet

해시 알고리즘을 사용한 Set
(+ LinkedHashSet : 저장 순서 유지 기능이 있는 HashSet)

TreeSet

이진트리를 기반으로 만들어진 Set

Map

key-value 형식의 쌍으로 이루어지며 순서가 없는 데이터의 집합
key는 중복 비허용, value는 중복 허용

HashMap

해시 알고리즘을 사용한 Map
(+ LinkedHashMap : 저장 순서 유지 기능이 있는 HashMap)

HashTable

HashMap과 유사하게 해시 알고리즘을 사용한 Map 구조의 table

+ HashMap과 HashTable의 차이점

특징HashMapHashTable
동기화xo
속도더 빠름더 느림(동기화 처리)
성능더 좋음(보조 해시 함수 사용 -> 충돌 감소)더 나쁨

TreeMap

이진트리를 기반으로 만들어진 Map


출처
https://tenlie10.tistory.com/10
http://www.tcpschool.com/java/java_collectionFramework_concept
https://velog.io/@adam2/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0%ED%95%B4%EC%8B%9C-%ED%85%8C%EC%9D%B4%EB%B8%94

0개의 댓글