판봉 개발 일기

Set 컬렉션에 대하여 알아보자 본문

자바 복습

Set 컬렉션에 대하여 알아보자

판봉 2021. 7. 13. 16:11
728x90

앞서 살펴본 List 컬렉션은 객체의 저장 순서를 유지한다.

하지만 Set 컬렉션은 저장 순서가 유지되지 않는다.

또한 객체의 중복 저장이 불가능 하며, 하나의 null만 저장할 수 있다.

 

Set 컬렉션은 수학의 집합 또는 구슬 주머니와도 비슷하다고 이야기를 한다고 한다.

 

Set 컬렉션에는 HashSet, LinkedHashSet, TreeSet 등이 있다.

  • HashSet
  • LinkedHashSet
  • TreeSet

다음은 Set 컬렉션에서 공통으로 사용가능한 Set 인터페이스의 메소드를 살펴본 것이다.

기능 메소드 설명
객체 추가 boolean add(E e) 주어진 객체를 저장.
객체가 저장되면 true 중복객체면
false를 리턴.
객체 검색 boolean contains(Object o) 객체가 저장되어있는지 여부파악
boolean isEmpty() 컬렉션이 비어있는지 여부 파악
lterator<E>iterator() 저장된 객체를 한 번씩 가져오는 반복자를 리턴.
int size() 저장된 전체 객체 수를 in형으로 리턴
객체 삭제 void clear() 저장된 모든 객체 삭제
boolean remove(Object o) 주어진 객체를 삭제

Set 컬렉션의 특징을 살펴보자면

  • 인덱스로 관리하지 않아서 인덱스를 매개값으로 갖는 메소드가 존재하지 않음
  • 위의 이유로 전체 객체를 대상으로 하여 한 번씩 반복해서 가져오는 반복자(lterator)를 제공함

반복자를 얻는 방법은 밑과 같음

Set<String> set = …;
Iterator<String> iterator = set.iterator();

Iterator 인터페이스에 선언된 메소드를 살펴보겠습니다.

리턴 타입 메소드 설명
boolean hasNext() 가져올 객체가 있으면 true
없으면 false를 리턴함
E next() 컬렉션에서 하나의 객체를 가져옴
void remove() Set 컬렉션에서 객체를 제거함

☞ hasNext()메소드next()메소드는 위의 기능으로 인해 같이 쓰이는 경우가 많다.