일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nestjs공부
- 기술면접공부
- JPA
- 자바공부
- 알고리즘공부
- querydsl
- 스프링부트
- 스프링부트공부
- 스프링 공부
- Axon framework
- 자료구조공부
- JPA공부
- 코테공부
- 스프링공부
- 코테준비
- 프로그래머스
- 플러터 공부
- nestjs스터디
- K8S
- JPA스터디
- 플러터 개발
- nestjs
- JPA 공부
- DDD
- Kafka
- JPA예제
- 스프링
- 카프카
- Flutter
- 기술공부
- Today
- Total
목록Hashtable (2)
DevBoi
Map interface를 구현한 3가지 구현체들의 차이는 간략하게 아래와 같다. HashMap : 동기화를 지원하지 않는다 HashTable : 엄청 초반에 만들어졌고, 동기화를 지원한다. ConcurrentHashMap: 동기화를 지원하고 HashTable 보다 성능이 좋다 그러면 ConcurrentHashMap이 왜 성능이 더 좋은지 알아보자 HashTable은 empty체크나 사이즈 체크 등 주요메서드들에 전부 syncronized처리가 되어있고, 한개의 쓰레드만 사용가능하게끔 락을 걸어놨다 예) 예시로, hashTable에서 put을 한다고 가정해보자 HashTable에서는 전체 메소드에 쓰레드 락이 걸려있고 ConcurrentHashTable에는 put 메서드 내, 이미 데이터가 존재하여, 교..
1. Hash Table 해쉬 테이블, 즉 해시 맵에서 개발자들이 사용하지만, 실제 내부 동작에 대해서는 잘 모르는 경우가 많다. 예를 들어서, hash 에 smith, 1234 가 들어있다고 가정하자 key는 smith 이고, 중간에 hash function 을 통해서, buckets에 들어간다. 이 해쉬 펑션은 value의 index를 알아내기 위한것이고, 해당 펑션 수행이후 값에 대한, index주소를 알아내서 값을 알아오게 된다. 잘 정리된 그림을 보면 바로 이해가 된다. 이 구조로 저장과, 삭제가 아주 빠르다. hash function 은 key를 array size로 나눈다. 그렇기 때문에 충돌 방식이 발생한다. 1,11,21 은 같은, 주소를 갖게 되는 것이다. 이러한 충돌 방식은 여러 구현..