Collection 클래스들 - Set

2023. 7. 18. 16:31JAVA

Set계열 : 순서X, index X, 중복Data를 허용X

Set은 interface여서 직접 new 생성 불가능

Set인터페이스를 구현한 하위 클래스들 사용

1. HashSet : 순서 X, index X, 중복Data X 성능 Good

2. TreeSet : 저장된 값에 따라 정렬되는 Set

3. LinkedHashSet : 저장된 순서대로 정렬된 Set 성능이 가장 안좋음

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class SetTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// Set계열 : 순서X, index X, 중복Data를 허용X
		
		//Set은 interface여서 직접 new 생성 불가능
		//Set set = new Set(); //error
		
		//Set인터페이스를 구현한 하위 클래스들 사용
		//1. HashSet : 순서 X, index X, 중복Data X 성능 Good
		//2. TreeSet : 저장된 값에 따라 정렬되는 Set
		//3. LinkedHashSet : 저장된 순서대로 정렬된 Set 성능이 가장 안좋음
		
		//HashSet<String> set = new HashSet<String>();
		//TreeSet<String> set =new TreeSet<String>();
		LinkedHashSet<String> set = new LinkedHashSet<String>(); 
		
		// 요소 추가 
		set.add(new String("aaa"));
		set.add("bbb"); //자동 new String()
		set.add("ccc");
		set.add("ddc");
		set.add("ffb");
		set.add("bbb"); // 중복데이터
		set.add("eee");
		set.add("ccc"); // 중복데이터
				
		// 요소 개수
		System.out.println(set.size()+ " : " + set.toString());
		
		// 인덱스번호가 없기에.. 요소값을 얻어오는 get()이 존재하지 않음.
		//set.get();
		
		// 순차적으로 얻어오는 방법
		//방법 1. for each문(확장된 for문)
		for(String t : set) {
			System.out.println(t);
		}
		System.out.println();
		
		//방법 2. 반복자(Iterator)를 이용하는 방법
		Iterator<String> datas = set.iterator();
		while(datas.hasNext()) {
			String e= datas.next();
			System.out.println(e);
		}
		System.out.println();
		
		//Set를 사용하는 가장 중요한 이유!!
		//중복 데이터를 허용하지 않기에
		//블루투스 장치 검색이 중복으로 되지 않는 등의 작업을 할때 사용됨.
			
	}

}


Set를 사용하는 가장 중요한 이유!!

중복 데이터를 허용하지 않기에

블루투스 장치 검색이 중복으로 되지 않는 등의 작업을 할때 사용됨.

'JAVA' 카테고리의 다른 글

Thread(스레드)  (0) 2023.07.19
Collection 클래스들 - Map  (0) 2023.07.18
Colletion 클래스들 - List  (0) 2023.07.18
Java 고급 문법 - Collection 클래스들  (0) 2023.07.18
Generic  (0) 2023.07.18