고급자바_Collection Framework_Set

wstudee·2020년 9월 15일
0

JAVA_고급

목록 보기
2/19

Set 인터페이스

  • 순서(인덱스)가 유지되지 않는 데이터의 집합
    순서가 있긴 하지만 List처럼 인덱스로 접근할 수 없음. Iterator로 접근
  • 중복 허용 X

Set 인터페이스를 구현하고 있는 클래스

  • SortedSet, TreeSet, HashSet

List vs. Set

  1. List
  • 입력한 데이터의 순서가 있음
  • 중복 데이터 저장 가능
  1. Set
  • 입력한 데이터의 순서 없음
  • 중복 데이터 저장 불가

boolean add( )

  • 데이터 추가 메서드
  • Set의 마지막에 데이터 추가
  • 성공하면 true, 실패하면 false 반환
  • 중복 저장이 불가하기 때문에
  • 중복 데이터를 add() 하면 false 반환됨

데이터 수정

  • Set 은 데이터 수정 명령이 따로 없음
  • 해당 자료를 삭제한 후 새로운 데이터 추가해야 함

remove(삭제할 자료)

  • 해당 자료 삭제

clear()

  • Set 데이터 전체 삭제

Iterator

  • Set은 데이터 순서가 없기 때문에 List처럼 하나씩 불러올 수 없음
  • 데이터를 하나씩 가져오기 위해 Iterator로 처리해야 함
  • Iterator 객체. Set의 iterator( ) 메서드 호출

    Iterator it = hs1.iterator();

  • Iterator는 인터페이스로 hasNext( ) 와 next( ) 를 가지고 있음
  • hasNext( ) : 포인터 다음 위치에 데이터 있으면 true, 없으면 false
    hasNext( )가 true 이면
  • next( ) : 포인터를 다음위치로 이동하고, 해당 위치의 자료를 반환

Collection 유형의 객체들

  • 서로 다른 자료 구조로 쉽게 변경해서 사용할 수 있음
  • 다른 종류의 객체를 생성할 때 생성자에 변경할 데이터를 넣어주면 됨
Set<Integer> intRnd = new HashSet<>();

List<Integer> intRndList = new ArrayList<>(intRnd);

TreeSet

  • HashSet 은 등록되는 순서를 알지 못함
  • TreeSet자동정렬 기능이 들어가 있음
  • 검색에 최적화되어 있음 (Tree = 검색속도!)

headSet

  • 특정한 자료(기준값)보다 작은 자료를 찾아서 SortedSet으로 반환하는 메서드

headSet(기준값)

  • 기본적으로 '기준값' 미포함

headSet(기준값, 논리값)

  • 논리값이 true 이면 '기준값' 포함

tailSet

  • 특정한 자료(기준값)보다 큰 자료를 찾아서 SortedSet 으로 반환하는 메서드

tailSet(기준값)

  • 기본적으로 '기준값' 포함

tailSet(기준값, 논리값)

  • 논리값이 true 이면 '기준값' 포함

subSet

subSet(기준값1, 기준값2)

  • 기준값1 ~ 기준값2 사이의 값을 가져옴
  • 기준값1 : 포함 | 기준값2 : 미포함

subSet(기준값1, 논리값1, 기준값2, 논리값2)

  • 각 기준값을 포함할 지 여부를 설정
  • 논리값이 true 이면 포함

0개의 댓글