Java - Set
2023. 2. 1. 16:19ㆍ코딩일기/JAVA
Set 인터페이스를 구현한 하위클래스들 : HashSet, TreeSet, LinkedHashSet

GitHub - jake5113/Mrhi_JAVA
Contribute to jake5113/Mrhi_JAVA development by creating an account on GitHub.
github.com
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) {
// Set 인터페이스 : 순서 X , index X, 중복데이터 X
// Set<String> set = new Set<>();//error : 인터페이스는 객체생성 불가
// Set 인터페이스를 구현한 하위클래스들 : HashSet, TreeSet, LinkedHashSet
// 1) HashSet
// HashSet<String> set = new HashSet<String>(); // 성능이 가장 우수함
// 2) TreeSet
// TreeSet<String> set = new TreeSet<>(); // 값의 오름차순으로 저장되어짐 [성능은 중간]
// 3) LinkedHashset
LinkedHashSet<String> set = new LinkedHashSet<>(); // 값을 저장한 순서 [성능은 최하]
// 요소 추가
set.add(new String("aaa"));
set.add("ccc");
set.add("eee");
set.add("ddd");
set.add("bbb");
// 요소개수 출력 및 요소값 확인
System.out.println(set.size() + " : " + set.toString());
// 중복데이터를 추가해보기 - 무시됨
set.add("ccc");
System.out.println(set.size() + " : " + set.toString());
// 요소값을 얻어오는 기능 .get()이 없음
// set.get(); // error - why? 인덱스번호가 없어서
// 일반적으로는 set의 요소 하나를 얻어오기보다는
// 모든 요소들을 순차적으로 얻어오는 경우가 많다.
// 순차적으로 요소값을 얻어오기
// 방법1. for이용 불가! - 인덱스번호가 없어서
// 방법2. 확장된 for문
for (String t : set) {
System.out.println(t);
}
System.out.println();
// 방법3. iterator(반복자) 를 이용
Iterator<String> datas = set.iterator();
while (datas.hasNext()) {
String s = datas.next();
System.out.println(s);
}
System.out.println();
// 방법4. 배열로 변환하여 접근
String[] aaa = new String[set.size()];
set.toArray(aaa);
System.out.println(aaa[0]);
System.out.println(aaa[1]);
System.out.println(aaa[2]);
System.out.println();
}
}
반응형
'코딩일기 > JAVA' 카테고리의 다른 글
Java - CollectionsClass (0) | 2023.02.01 |
---|---|
Java - Map (0) | 2023.02.01 |
Java - List (0) | 2023.02.01 |
Java - 제네릭 <Generic> (0) | 2023.02.01 |
Java - 예외 Exception (0) | 2023.01.31 |