자바 Collection(컬렉션) 2편(Set 컬렉션)

2022. 10. 14. 21:17Java 프로그램

728x90

2편 이어서 시작하겠습니다~

 

Set 컬렉션

- 수학의 집합의 개념과 유사합니다.

- 저장 순서가 없습니다.

- 객체의 중복 저장을 허용하지 않습니다.

- 하나의 null만 저장이 가능합니다.

구현클래스)

Hashset, LinkedHashSet, TreeSet

 

주요 메소드 확인 하겠습니다.

Set 컬렉션 주요 메소드

얼핏 보면 List 컬렉션의 주요 메소드와 비슷하다는 것을 알 수 있을 것 입니다. 그래도 꼭 확인하고 넘어가 주세요

다른점 중 하나는

- 전체 객체 대상으로 한 번씩 반복해 가져오는 Iterator가 있습니다.

- 인덱스로 객체를 검색해서 가져오는 메소드가 없습니다.

 

1) HashSet

- 동일 객체 및 동등 객체는 중복을 허용하지 않습니다.

- Set<E> set = new HashSet<E>();

연습해 보겠습니다!

Set<String> set = new HashSet<String>();
		
		set.add("짱구");
		set.add("맹구");
		set.add("철수");
		set.add("유리");
		set.add("훈이");
		
		
		int size = set.size();
		System.out.println("총원소수 : " + size);
		
		Iterator<String> it = set.iterator();
		while(it.hasNext()) {
			String e = it.next();
			System.out.println(e);
		}
			System.out.println();
			set.remove("훈이");
			//향상된 for문 사용 가능
			for(String e : set) {
				System.out.println(e);
			}

우선

1. add 메소드를 사용하여 {짱구,맹구,철수,유리,훈이} 를 추가하였습니다.

2. 그 후 size() 메소드를 통해 갯수를 확인하였고

3. Iterator 메소드를 사용하여 객체를 한번씩 가져왔습니다.

=> while( it.hasNext()) => Iterator 인 it 에서 다음 객체가 존재한다면 실행될 수 있도록 코딩 한 것입니다.

하나씩 객체를 확인해 가면서 String e 변수에 저장한 후 저장된 e를 출력하는 방식으로 모든 데이터를 출력한 것입니다.

4. Iterator 메소드가 아닌 향상된 for문으로도 출력이 가능함을 증명한 코드 입니다.

=> 차이점을 두기위해 remove() 객체를 삭제하여 출력해 봤습니다.

결과 확인하겠습니다!

HashSet 예제 결과 확인

 

이렇게 Set 은 간단하게 마무리 하고 3편에서는 Map 컬렉션을 다뤄보겠습니다.

감사합니다~😎

반응형