28. Set컬렉션

Lee kyu min·2024년 2월 14일

Java study

목록 보기
28/41

Set

  • 비선형 자료 구조 형태로 요소 저장
    (순서가 없음, get()메서드 없음) -> (iterator()메서드로 객체 생성 후 데이터를 가져와야 한다.)
  • 중복 저장 불가능(null값 하나만 저장 가능)
  • 자식 클래스도 HashSet, TreeSet, LinkeHashSet이 있다

형식

Set<자료형> 객체명 = new 자식클래스명<>();

1. HashSet

  • hashing이라는 방법을 활용해서 정보 저장

1). 값 추가

add(value);		//값 추가
  • 입력 값이 HashSet내부에 없으면 값 추가 후 true 반환, 이미 내부에 값 존재시 false 반환

2). 값 삭제

remove(value);		// 값 삭제
clear();		//모든 값 삭제
  • 입력 값이 HashSet내부에 있으면 값 삭제 후 true 반환, 내부에 값이 없으면 false 반환

3). HastSet 크기 구하기

size();		//HastSet 크기 구하기

4). 값 출력

Set<String> set = new HashSet<>();		//HashSet클래스 set 객체 생성

System.out.println(set);			//set내 모든 값 [ ]로 묶어서 출력
Iterator<String> it = set.iterator();            //Iterator(반복자)
		
		while(it.hasNext() ) {
			System.out.print(it.next()+'\n');
		}
		System.out.println();
  • Set에는 인덱스로 객체를 가져오는 get(index) 메소드가 없다.
    대신 전체 객체를 대상으로 한 번씩 반복해서 가져오는 반복자(Iterator)를 사용.
    Iterator에서 하나의 객체를 가져올 때는 next() 메소드를 사용.
    hasNext() 메소드는 가져올 객체가 있으면 true를 리턴하고 없으면 false를 리턴.
    5). 값 검색
contains(value);	// 값 검색
  • 입력 값이 HashSet내부에 있으면 true 반환

2. TreeSet

  • 비선형 트리 기반 데이터 구조 구현
  • 데이터 추가, 삭제시 HashSet보다 시간이 걸림
  • 데이터 검색, 정렬시 더 효율적

0개의 댓글