DataStructure (6) 썸네일형 리스트형 [Java] 링크드리스트 (LinkedList) 자료구조 📌 링크드리스트(LinkedList)란? Collection framework의 일부이며 java.util 패키지에 소속되어 있다. 데이터가 연속된 위치에 저장되지 않고 모든 데이터가 데이터와 주소 부분을 별도로 가지고 있다. 포인터와 주소를 이용하여 연결한다. 중간에 데이터를 추가나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없다. ArrayList에 비해서 데이터의 추가나 삭제가 용이하지만, 인덱스가 없기에 특정 요소에 접근하기 위해서는 순차 탐색이 필요로 하여 탐색 속도가 떨어진다는 단점이 있습니다. 가장 첫 번째 노드를 HEAD 노드라 하고, 가장 마지막 노드를 TAIL 노드라고 합니다. 📌 링크드리스트(LinkedList) 선언 // 선언 방식 LinkedList link.. [Java] 해시맵 (HashMap) 자료구조 📌 해시맵(HashMap)이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션이다. Map은 키와 값으로 구성된 Entry객체를 저장하는 구조를 가지고 있는 자료구조입니다. Key는 중복 저장될 수 없지만, Value는 중복 저장될 수 있다. 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 덮어 씌운다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. HashMap은 해시 함수를 통해 Key와 Value 가 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 들어 있는 위치 또한 관계가 없습니다. 📌 HashMap 선언 방식 // 선언 방식 H.. [Java] 해시(Hash) & 해시 테이블(Hash Table) 📌 해시 (Hash) 란? Hash는 검색과 저장에서 좋은 성능을 가진다. Hash의 핵심은 Key와 Value이다. Key와 Value가 한 쌍으로 존재하는 자료구조이다. 이러한 Key와 Value의 한 쌍을 해쉬 테이블 (Hash Table)이라고 한다. Key 값은 절대로 중복되지 않는다는 특징을 가지고 있다. 같은 Key 값에 Value 값을 넣으면 이전 값은 사라지고 나중에 들어온 값이 Value에 남다. 📌 해시 테이블 (Hash Table) 이란? 해시 테이블은 키(Key), 해시함수(Hash Function), 해시(Hash), 값(value), 저장소(Bucket, Slot)로 이루어져 있다. Key를 Hash 값으로 매핑하고 이 Hash 값을 주소로 삼아 데이터를 Key와 Value로 .. [Java] 덱 / 디큐 (Deque) 자료구조 📌 덱 / 디큐 (Deque) 란? 덱은 Doble - Ended Queue의 줄임말로 큐의 양쪽에서 데이터를 넣고 뺄 수 있는 형태의 자료구조이다. 자바에서 덱은 인터페이스로 구현되어 있다. // 선언 방법 Deque deque = new ArrayDeque(); Deque linkedList = new LinkedList(); // 값 추가 deque.addFirst() // 값을 맨 앞쪽에 추가한다. 용량을 초과하면 예외가 발생. deque.offerFirst() // 값을 맨 앞쪽에 추가한다. boolean 을 반환. deque.addLast() // 맨 뒤쪽에 값을 추가한다. 용량을 초과하면 예외 발생. deque.offerLast() // 맨 뒤쪽에 값을 추가한다. boolean 을 반환. /.. [Java] 큐 (Queue) 자료구조 📌 큐 (Queue)의 개념 Queue의 사전적인 의미는 대기줄을 의미한다. 이처럼 줄을 지어 순서대로 처리되는 것이 Queue이다. Queue는 Stack 과는 반대로 First In First Out의 FIFO 즉, 선입선출 구조를 가진다. Queue는 LinkedList를 활용하여 생성해야 합니다. 그렇기에 Queue와 LinkedList가 다 import 되어 있어야 사용이 가능합니다. Queue는 가장 첫 번째 원소를 fornt라고 하고 끝에 있는 원소를 rear라고 한다. 데이터를 넣을 때는 EnQueue, 데이터를 꺼낼 때는 DeQueue라고 한다. 📌 큐(Queue) 사용법 // 선언 방식 Queue queue = new LinkedList(); // 값 추가 queue.add(1); qu.. [Java] 스택 (Stack) 자료구조 📌 스택 (Stack) 스택은 어떠한 자료를 쌓아서 올려놓는 Last In First Out 구조이다. (LIFO) 예시로 프링글스가 있다. 가장 먼저 들어가 있는 과자는 가장 나중에 나올 수 있다. 즉, 나중에 들어간 과자가 가장 먼저 나오므로 후입선출이라고 생각하면 된다. 📌 Stack 사용법 Stack 선언 Stack stack = new Stack(); Stack stack = new Stack(); Stack 값 추가 Stack stack = new Stack(); stack.push(1); stack.push(2); Stack 값 제거 Stack stack = new Stack(); stack.pop; // 제일 위에 값 제거 stack.clear(); // stack 의 모든 값 제거 Sta.. 이전 1 다음