HashSet 소스 코드 분석

829 단어 데이터 구조
HashSet 에 서 는 주로 HashMap 의 데이터 구 조 를 이용 하여 간단 하 다 고 생각 합 니 다.모든 add, size, isEmpty 등 은 내 장 된 구성원 변수 map (HashMap 또는 LinkedHashMap) 에 매 핑 되 었 습 니 다. 예 를 들 어 add 방법:

public boolean add(E e) {
	return map.put(e, PRESENT)==null;
    }

맵 을 사 용 했 습 니 다. 하지만 여기에 놓 을 때 키 의 value 는 모두 같 고 내 장 된 Object 대상 입 니 다.

 private static final Object PRESENT = new Object();

그러나 안에 구조 함수 가 비교적 특별 하 다. LinkedHashSet 이 HashSet 을 계 승 했 기 때문에 HashSet 안에 구조 함수 의 마지막 매개 변 수 는 boolean 유형 이다. 이 매개 변 수 는 의미 가 없다. 주로 구조 가 LinkedHashSet 인지 HashSet 인지 구분 하기 위해 생 긴 것 이다. 이 함수 가 map 에 생 긴 것 은 LinkedHashMap 이기 때문이다.
이런 기 교 는 이전에 본 적 이 없 으 니 배 울 수 있다.유사 고 를 경 배 하 는 큰 소 중...
기본적으로 이 렇 습 니 다. 이것 은 util 에서 가장 간단 한 유형 이 라 고 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기