JAVA
Test170.java / 컬렉션 프레임워크(Collection Framework) / Set (HashSet, TreeSet)
universedevelope
2022. 10. 29. 00:39
/* ========================================================================
■■■ 컬렉션 프레임워크(Collection Framework) ■■■
=========================================================================*/
// Set → HashSet, TreeSet
// - 순서 없음.
// - 중복을 허용하지 않는 구조(기본)
/*
○ HashSet<E> 클래스
java.util.HashSet<E> 클래스는
Set 인터페이스를 구현하는 클래스로
순서의 개념이 아니라 집합의 개념으로 이해해야 하는 자료구조이다.
이로 인해 데이터의 중복을 허용하지 않는다.
또한, 동기화를 지원하지 않는다.
*/
import java.util.Set;
import java.util.HashSet;
public class Test170
{
public static void main(String[] args)
{
// Set ob = new Set(); 인터페이스라 불가
// Set<String> ob = new Set<String>(); 인터페이스라 불가
Set<String> dog = new HashSet<String>();
// dog 라는 Set 자료구조에 요소 추가
dog.add("리트리버");
dog.add("말티즈");
dog.add("시바");
dog.add("비숑");
dog.add("웰시코기");
// 기존 데이터 Set 출력
System.out.print("기존 데이터 Set : ");
for (String s : dog)
{
System.out.print(s + " ");
}
System.out.println();
// 기존 데이터 Set : 시바 리트리버 비숑 말티즈 웰시코기
// 순서 의미 없음
// 데이터 입력순서 → 자료구조의 요소 격납 순서
// 이들이 서로 관계 없이 구성되어 있는 것을 확인
dog.add("닥수훈트");
dog.add("치와와");
dog.add("시베리안허스키");
dog.add("말티즈");
dog.add("셰퍼드");
dog.add("리트리버");
dog.add("리트리버");
dog.add("리트리버");
dog.add("리트리버");
dog.add("리트리버");
dog.add("비숑");
dog.add("비숑");
dog.add("비숑");
dog.add("비숑");
dog.add("비숑");
dog.add("닥수훈트");
dog.add("닥수훈트");
dog.add("닥수훈트");
dog.add("닥수훈트");
dog.add("웰시코기");
dog.add("웰시코기");
dog.add("웰시코기");
dog.add("웰시코기");
// 추가 후 데이터 Set 출력
System.out.print("추가 후 데이터 Set : ");
for (String s : dog)
{
System.out.print(s + " ");
}
System.out.println();
// 추가 후 데이터 Set : 시바 셰퍼드 리트리버 시베리안허스키 닥수훈트 치와와 비숑 말티즈 웰시코기
// ※ 데이터가 추가되는 순서와 상관없이 목록이 구성되어 있으며
// 같은 데이터가 여러번 반복 추가될 경우
// 하나만 유효한 데이터로 구성되어 있는 것을 확인할 수 있다.
// (아무리 추가해도 한 번만 출력됨)
// ※ 또한, 자료구조의 특성 상 중복 데이터를 허용하지 않는다고 해서
// 중복 데이터를 추가할 경우 오류가 발생하는 것은 아니다.
}
}
728x90