PROGRAMMING

Data structure 본문

프로그래밍 언어 공통/OOP

Data structure

Raccoon2125 2022. 5. 23. 14:38

1. ArrayList, LinkedList

 1) ArrayList

   : 일반적인 배열(array)로 활용되며, 배열의 각 인덱스에 지정된 자료형의 값이 들어가있음.

    ※ Java에서 ArrayList의 경우, 일반 배열과는 다르게 가용량(capacity)를 넘을 경우 사용 중인 공간의 크기를 더 크게 할당할 수 있음. (add, get, set, remove, clear)

 2) LinkedList

   : 데이터 저장공간과 다음 데이터 저장공간의 주소를 가리키는 포인터로 구성된 연결리스트.

     단방향(next)과 양방향(prev, next) 연결리스트. 총 2가지 종류가 있음.

 

2. Hashtable vs HashList vs HashTree

 1) Hashtable (called HashMap)

   : (key, value) pair를 저장할 수 있는 자료구조.

     - key : hashcode로 계산된 값.

     - value : key 값과 관련성이 있는 값.

     - 특징: O(1)

   ※ LinkedHashMap(Linked Hashtable) : key 값이 같은 경우 value를 update하여 기존 값을 삭제하지 않고 linkedlist로 연결하여 데이터손실을 없앰.

 2) HashList

   : hashcode로 계산된 데이터 리스트. (ex. 한 파일 내의 내용을 여러 파트로 나눈 후 hashcode 계산 및 저장 → 추후 데이터 통합에 리스트 활용)

 3) Hashtree

   : Hashlist와 동일한 원리로 데이터를 저장하고 있으며 tree 형태의 구조를 가지고 있음.

 

3. HashSet, TreeSet

 1) HashSet

   : hashcode로 계산된 데이터가 기존 HashSet 내부의 해쉬코드값과 같은지 비교하고 같지 않을 경우 저장

 2) TreeSet

   : Tree의 특성을 지닌 Set(중복 저장 불가, 저장 순서 유지 X) 자료구조.

'프로그래밍 언어 공통 > OOP' 카테고리의 다른 글

OOP 설계 원칙 SOLID  (0) 2022.05.29
Class  (0) 2022.05.23
UML Diagram  (0) 2022.05.16
Comments