본문 바로가기

Java/본격 Java 컬렉션

[Java] HashSet 개념

기본적으로 Set(집합)은 중복을 허용하지 않고 순서가 정해져 있지않다.

그래서 만약에 중복값을 추가하려고 하면 추가가 안된다.

집합내에 원소들을 출력하기 위해서는

Iterator를 사용하는 것이 좋다.

그리고 while문을 이용하여 다음 출력할 것이 없을때까지  출력한다.

.

.

package Set;
import java.util.*;
public class HashSetEx1 {

	public static void main(String[] args) {
		HashSet<String> set1 = new HashSet<String>();
		
		set1.add("Java");
		set1.add("JDBC");
		set1.add("Servlet/JSP");
		set1.add("Java"); // 중복값은 추가되지 않음
		set1.add("Spring");
		
		System.out.println("총 객체 수 : " + set1.size());
		System.out.println(set1);
		
		Iterator<String> it1 = set1.iterator();
		
		System.out.println("항목 출력 1번째 방법 : ");
		// 모든 항목을 반복하여 출력하는 방법(1)
		while(it1.hasNext()) { // 다음 항목이 있으면 반복문 수행
			System.out.println(it1.next());			
		}
		System.out.println();
		
		System.out.println("항목 출력 2번째 방법 : ");
		// 모든 항목을 반복하여 출력하는 방법(2)
		for(String str : set1) {
			System.out.println(str);
		}
		
		// ArrayList의 내용을 set으로 변환
		String[] arr1 = {"ABC", "DEF", "GHI", "JKL", "MNO"};
		
		List<String> list1 = Arrays.asList(arr1);
		
		// 리스트를 SET으로 변환
		Set<String> set2 = new HashSet<String>(list1);
		System.out.println("set2의 내용 : ");
		for(String str : set2) {
			System.out.println(str);
		}
	}

}

.

.

집합의 크기를 이용해서 for문을 써도 될거같지만 순서가 없기때문에 사용하기 어렵다.

사용하려면 advanced for문을 이용하여 출력 가능하다.

 

advanced for문 - for (자료형 이름 : 컬렉션)

728x90
반응형