LinkedHashSet Linked HashSet은 HashSet과는 다르게 입력 순서를 보장해줍니다. Linked HashSet은 입력 순서를 보장하기 위해 Linked List처럼 이전 노드를 가리키는 변수와 다음 노드를 가리키는 변수를 가지고 있습니다. 이를 통해 순서를 보장하고 있습니다. 💡 Node의 구조 LinkedHashSet 구현 💡 구현하고자 하는 메서드 public interface Set { /** * 데이터가 Set에 없는 경우 데이터를 추가합니다. */ void add(E element); /** * 특정 데이터를 Set에서 삭제합니다. */ void remove(E element); /** * 특정 데이터가 포함되어 있는지 확인합니다. */ boolean contains(E e..
Hash Set Set은 중복 원소를 저장할 수 없으며 하나의 NULL값만 저장할 수 있습니다. 또한 순서를 보장하지 않기 때문에 순서 보장이 필요한 경우에는 LinkedHashSet을 사용해야 합니다. 우선 Set에 대해 살펴보기 전에 Hash란 친구는 어떤 역할을 하는지 알아보겠습니다. Hash 란? 어떠한 데이터를 Hash Function의 input으로 넣어 output으로 나오는 결과가 Hash라고 생각하면 됩니다. 그리고 이 도출된 Hash를 사용해 데이터 저장위치의 Key가 됩니다. 그렇다면 왜 Hash Function을 사용해 Hash를 만들고 이를 사용할까요? 그 이유는 효율적인 데이터 탐색이라고 생각할 수 있습니다. 해시를 사용한다면 자료구조(ex: List)를 순회하지 않고 효율적으로..
Array List Array List는 자바에서 가장 흔히 볼 수 있는 JCF입니다. 필자는 지금까지 List를 선언할 때 아무 생각 없이 Array List만을 사용하곤 했었습니다. 또한 자바에서 Array List는 내부적으로 Object[] 배열을 두고 사용합니다. 💡 시간 복잡도 탐색 내부적으로 Object[] 배열로 구현이 되어있기 때문에 인덱스를 통해 접근이 가능합니다. 따라서 O(1)의 시간 복잡도를 가집니다. 삽입 배열의 첫 번째와 중간에 추가하고자 하는 경우 N개의 데이터를 재 정렬해야 하기 때문에 O(n) 만큼의 시간 복잡도를 가질 것으로 예상되며, 마지막에 추가하고자 하는 경우 O(1) 만큼의 시간 복잡도를 가지지 않을까 싶습니다. 삭제 배열의 첫 요소와 중간 요소를 삭제하는 경우 ..
Doubly Linked List 단일 연결 리스트는 하나의 노드에 데이터와 다음 노드를 가리키는 노드만을 가지고 있었다면 이중 연결 리스트는 여기서 하나더 추가되어 이전 노드를 가리키는 노드도 추가되어 있습니다. 이중 연결 리스트가 단일 연결 리스트에 비해 좋은 점은 검색 능력입니다. 단일 연결 리스트의 경우 N 번째에 있는 노드를 검색하기 위해서는 이전 노드를 아는 경우는 O(1)의 성능을 가지지만 이전 노드를 모르는 보통의 경우에는 N만큼을 순회해야 하기 때문에 O(n)이 소요됩니다. 하지만 이중 연결 리스트의 경우 이전 노드를 참조하는 변수를 가지고 있기 때문에 단일 연결 리스트에 비해 효율적인 탐색이 가능합니다. Doubly Linked List 구현 💡 구현하고자 하는 메서드 아래 메서드는 기..
- Total
- Today
- Yesterday
- spring boot redisson sorted set
- java userThread와 DaemonThread
- redis 대기열 구현
- spring boot poi excel download
- 트랜잭셔널 아웃박스 패턴 스프링부트
- redis sorted set
- 서비스 기반 아키텍처
- 람다 표현식
- transactional outbox pattern spring boot
- spring boot 엑셀 다운로드
- spring boot excel download paging
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- spring boot redisson 분산락 구현
- @ControllerAdvice
- spring boot excel download oom
- redis sorted set으로 대기열 구현
- transactional outbox pattern
- space based architecture
- microkernel architecture
- 공간 기반 아키텍처
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot redis 대기열 구현
- pipe and filter architecture
- 자바 백엔드 개발자 추천 도서
- pipeline architecture
- polling publisher spring boot
- spring boot redisson destributed lock
- java ThreadLocal
- service based architecture
- 레이어드 아키텍처란
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |