Hashtable, HashMap, HashSet 공통점

4680 단어 데이터 구조
Hashtable
Hashtable 산 목록 은 키 - 값 에 대응 하 는 형식 으로 요 소 를 저장 하 는 무질서 한 데이터 구조 입 니 다.클래스 정의:
public class Hashtable
    extends Dictionary
    implements Map, Cloneable,io.Serializable

구조 함 수 는 다음 과 같다.
Hashtable():         ,     11.     0.75.
Hashtable(int initalCapacity,float loadFactor):            ,       。
Hashtable(Map t):          ,       。

산 목록 (Hashtable) 의 주요 방법 은 다음 과 같 습 니 다.
object put(object key,object value):put              ,                  ,        ,      ,             。
boolean containsKey(object key) boolean containvalue(object value):                       。
Object remove(object key):                    。
Colletion values():              ,      ,   key

산 목록 에 같은 요소 가 두 개 있 으 면 안 됩 니 다. 같은 요소 가 있 으 면 프로그램 은 하나의 요소 로 처리 합 니 다. Hashtable put 방법:
      
     value==null
     key hashCode  ,  key==null,        

HashMap
클래스 정의
public class HashMap
    extends AbstractMap
    implements Map, Cloneable, Serializable

Hashtable 은 Dictionary 에서 계승 하고 HashMap 은 AbstractMap HashMap 에서 계승 하 는 put 방법 을 볼 수 있 습 니 다.
       
    key==null
      valuenull

HashMap 은 Hashtable 의 경량급 실현 (비 스 레 드 안전 실현) 입 니 다. 그들 은 모두 Map 인 터 페 이 스 를 완 성 했 습 니 다. 주요 차이 점 은 HashMap 이 빈 키 (key) 를 허용 하 는 것 입 니 다. 비 스 레 드 안전 으로 인해 효율 적 으로 Hashtable 보다 높 을 수 있 습 니 다.
가장 큰 차이 점 은 Hashtable 의 방법 은 Synchronize 입 니 다. HashMap 은 여러 스 레 드 에서 Hashtable 을 방문 할 때 자신 이 동기 화 할 필요 가 없 으 며, HashMap 은 외부 동기 화 (Collections. synchronizedMap) 를 제공 해 야 합 니 다.
Hashtable 과 HashMap 이 사용 하 는 hash / rehash 알고리즘 은 모두 비슷 하기 때문에 성능 에 큰 차이 가 없 을 것 입 니 다.
HashSet
HashSet (산열 집합) 과 산열 목록 (hashtable) 이라는 두 가지 데이터 구 조 는 기능 은 기본적으로 같 지만, 그들 이 실현 하 는 인 터 페 이 스 는 다르다. 산열 목록 은 Map (이미지) 인 터 페 이 스 를 실현 하고, 산열 집합 (HashSet) 은 set 인 터 페 이 스 를 실현 한다. 또한 산열 목록 은 선형 동기 이 고, 산열 집합 은 비 선형 동기 화 이다.
HashSet 은 Set 인 터 페 이 스 를 실 현 했 기 때문에 Collection 인 터 페 이 스 를 실 현 했 기 때문에 집합 입 니 다. add 방법 으로 요 소 를 추가 합 니 다. 해시 집합 (HashSet) 의 구조 함 수 는 다음 과 같 습 니 다.
HashSet():           。
HashSet(collection c):       collection             。
HashSet(int initialCapacity):       collection             。
HashSet(int initialCapacity,float loadFactor):            ,       。        160.75.

해시 집합 (HashSet) 의 일반적인 방법 은 다음 과 같 습 니 다.
boolean add(obj):           。               ,      ,     false.
boolean remove(obj):      ,        ,    ,     false.
boolean isempty():        。

해시 집합 은 교체 기 를 사용 하여 옮 겨 다 닐 수 있 으 며, 해시 집합 산 목록 과 마찬가지 로 같은 요 소 를 가 질 수 없습니다.
해시 집합 은 내부 해시 코드 를 통 해 요소 저장 주 소 를 계산 합 니 다. 이 점 은 산 목록 과 마찬가지 로 해시 집합 에는 키 가 없습니다.
해시 집합 을 사용 하여 데이터 처 리 를 하 는 것 은 링크 를 사용 하여 데이터 처 리 를 하 는 것 보다 시간 이 더 짧 아서 시스템 자원 을 절약 할 수 있다.

좋은 웹페이지 즐겨찾기