Java - HashSet

iseon_u·2022년 5월 22일
0

Java

목록 보기
57/77
post-thumbnail

HashSet


Set - 순서 ❌, 중복 ❌

HashSet

  • Set 인터페이스를 구현한 대표적인 컬렉션 클래스
  • 순서를 유지하려면, LinkedHashSet 클래스를 사용하면 된다.

TreeSet

  • 범위 검색과 정렬에 유리한 컬렉션 클래스
  • HashSet 보다 데이터 추가, 삭제에 시간이 더 걸린다.

HashSet - 주요 메서드

HashSet()
HashSet(Collection c)생성자
HashSet(int initialCapacity)초기 용량 설정
HashSet(int initicalCapacitiy, float loadFactor)용량 설정 기준
boolean add(Object o)추가
boolean addAll(Collection c)추가 (합집합)
boolean remove(Object o)삭제
boolean removeAll(Collection c)삭제 (교집합)
boolean retainAll(Collection c)조건부 삭제 (차집합)
void clear()모두 삭제
boolean contains(Object o)포함 여부
boolean containsAll(Collection c)여러 객체 모두 포함 여부
Iterator iterator()컬렉션 요소 읽어오기
boolean isEmpty()비어있는지 여부
int size()저장된 객체의 개수
Object[] toArray()객체 배열로 반환
Object[] toArray(Object[] a)

HashSet - equals() hashCode()

  • 객체를 저장하기전에 기존에 같은 객체가 있는지 확인
  • boolean add(Object o) 는 저장할 객체의 equals()hashCode() 를 호출 (Object class 메서드)
  • equals()hashCode()가 오버라이딩 되어 있어야 한다.
public boolean equals(Object obj) { 
	if(!(obj instanceof Person)) return false;
	Person tmp = (Person)obj;
	return this.name.equals(tmp.name) && this.age==tmp.age; // iv 를 비교
}

public int hashCode() { // int hash(Object... values); 가변인자
	return Objects.hash(name, age);
}
profile
🧑🏻‍💻 Hello World!

0개의 댓글