자바 자료구조 및 특징
---------------------------------------------------------------
✨ 동기화
StringBuffer, StringBuilder
(동기화O), (동기화X)
Vector, ArrayList
(동기화O), (동기화X)
Iterator, Enumeration
(동기화O), (동기화X)
HashTable, HashMap
(동기화O), (동기화X)
단, HashMap은 null 키와 null 값을 가질 수 있다
---------------------------------------------------------------
✨ LinkedList
ArrayList와 유사하지만 데이터를 연속적으로 저장하지 않고
임의의 위치에 저장한다 (메모리에 순서대로 저장X)
즉, 비 연속적이다
효과:
1. 메모리 효율 좋다
2. 데이터 삭제 삽입이 ArrayList에 비해 빠르다
각 메모리속 데이터는 값 뿐만 아니라 다음 데이터의 참조변수를 갖는데
"값"과 "다음 데이터"를 합쳐서 Node(노드) 라고 부른다
종류로서는 단일, 이중 두가지가 있다
단일은 다음만 알고 (단방향 탐색)
이중은 이전과 다음 둘다 안다 (양방향 탐색)
제일 처음 나오는 노드 : Header 노드
제일 마지막에 나오는 노드 : Tail 노드
---------------------------------------------------------------
✨ Entry 인터페이스
Map 내부 인터페이스
Map은 여러개의 Entry로 구성된 컬렉션 인 것 이다
---------------------------------------------------------------
✨ TreeMap
데이터가 트리 형태로 저장된다
각 데이터마다 LinkedList 때 처럼 Node(노드) 라고 부른다
가장 첫번째 트리를 루트라고 부른다
트리에 저장될때 보면 현재 노드보다 작으면 왼쪽 이라면 크면 오른쪽 두게되는데
이렇게되면 자동으로 정렬되는 효과가 있다
즉 데이터가 저장될때 키와 벨류로 구성된 Entry(엔트리)로 저장되며
구조는 트리형태이다
---------------------------------------------------------------
✨ TreeSet
TreeMap 과 마찬가지로 트리구조이다
Set이기 때문에 저장되는 데이터의 순서를 보장하지 않는다