| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 자료구조
- Java
- 프로그래밍기초
- 프로그래머스
- 자바개발
- 개발공부
- 메모리관리
- 백준
- 가비지컬렉션
- 알고리즘
- 객체지향
- JVM
- 클린코드
- HashMap
- 예외처리
- 코딩인터뷰
- 코딩공부
- 코딩테스트팁
- 파이썬
- 개발자팁
- 코딩테스트준비
- 멀티스레드
- 정렬
- 자바공부
- 개발자취업
- 자바기초
- 알고리즘공부
- 자바프로그래밍
- 자바
- 코딩테스트
- Today
- Total
목록HashSet (3)
코드 한 줄의 기록
자바로 개발하다 보면 중복 없이 데이터를 관리해야 하는 경우가 정말 많습니다. 이럴 때 Set 컬렉션을 사용하는데, 막상 HashSet, TreeSet, LinkedHashSet 중에서 어떤 것을 선택해야 할지 고민될 때가 있죠. 오늘은 제가 공부한 내용을 정리하면서, 여러분께도 각 Set의 특성과 정렬 방법을 공유해보려고 합니다.Set 인터페이스의 기본 특징먼저 Set이 무엇인지부터 정리하고 넘어가겠습니다. Set은 Collection 인터페이스를 상속받은 인터페이스로, 중복을 허용하지 않는다는 것이 가장 큰 특징입니다. List처럼 같은 값을 여러 번 저장할 수 없고, 한 번만 저장됩니다.중복된 값을 저장할 수 없음기본적으로 순서를 보장하지 않음 (일부 구현체 제외)인덱스로 접근 불가능null 값도 ..
배열(Array)을 처음 배웠을 때 생각했던 게 있어요. 크기가 미리 정해지니까 데이터를 추가하거나 삭제할 때마다 새로운 배열을 만들어야 한다는 점이 정말 불편했습니다. 게다가 데이터가 중간에 삭제되면 뒤에 있는 모든 요소를 앞으로 한 칸씩 이동시켜야 하고요. 이런 문제들을 해결하기 위해 Java가 제공하는 것이 바로 컬렉션 프레임워크(Collection Framework)입니다. 요즘 Java 개발을 하면서 컬렉션 프레임워크를 모르고는 단 하루도 버틸 수 없을 정도로 중요하더군요. 특히 List, Set, Map 이 세 가지는 정말 자주 마주치게 됩니다. 이 글에서는 제가 공부하면서 배운 내용을 여러분과 함께 정리해보겠습니다.컬렉션 프레임워크란 무엇인가?먼저 컬렉션 프레임워크가 정확히 뭔지 알아봅시다...
HashMap과 HashSet의 핵심 차이점HashMap은 키-값 쌍으로 데이터를 저장하는 Map 인터페이스의 구현체이고, HashSet은 중복을 허용하지 않는 Set 인터페이스의 구현체입니다. 흥미롭게도 HashSet은 내부적으로 HashMap을 사용하여 구현되어 있어, 추가되는 값을 키로 사용하고 더미 객체를 값으로 저장합니다.내부 구조와 작동 원리HashMap의 내부 동작HashMap은 해시 테이블을 기반으로 하며, 배열과 연결 리스트(또는 트리)의 조합으로 구현됩니다. 키의 해시코드를 계산하여 배열 인덱스를 결정하고, 해시 충돌 시 연결 리스트나 균형 트리를 사용하여 데이터를 저장합니다. Java 8의 성능 개선 - 트리화(Treeification)Java 8부터는 해시 충돌이 빈번한 버킷에 대해..