1. HashSet이란?
Collection FrameWork의 종류 중 하나 (컬렉션 프레임 워크에는 List,Set,Map 이 있다.)
*컬렉션 프레임 워크란?
많은 양의 데이터를 더 쉽고,편리하게, 더 효율적으로 관리할 수 있도록 자바에서 제공하는 클래스의 모임.
HashSet 내부 매소드 들은 List의 매소드와 거의 같다. (추가 == .add, 삭제 == .remove 등등)
(1)HashSet의 특징
Hashset은 중복을 허용하지 않는다. 만약 중복해서 적어도 자동으로 중복이 제거 된다.
Hashset은 순서를 보장하지 않는다. 값을 넣은 순서와 상관없이 저장된다.
*만약 값을 넣은 순서대로 저장되기 원한다면? LinkedHashSet을 이용하면 된다.
2. 코드 리뷰
package Chap_09;
import java.util.HashSet;
import java.util.LinkedHashSet;
public class _06_HashSet {
public static void main(String[] args) {
// 세트
// 중복 허용 하지 않음 -> 중복해서 적어도 자동으로 중복 제거
// set은 순서보장이 안됨. 순서가 지 멋대로 들어감.
//선언
HashSet<String> set = new HashSet<>();
//데이터 추가
set.add("삼겹살");
set.add("쌈장");
set.add("음료");
set.add("소금");
set.add("후추");
set.add("삼겹살");
set.add("깻입");
set.add("상추");
set.add("삼겹살");
System.out.println("총 구매 상품 수 : " + set.size());
//순회
for (String s :
set) {
System.out.println(s);
}
System.out.println("------------------------------");
//확인
if(set.contains("삼겹살")){
System.out.println("삼겹살 사러 출발");
}
System.out.println("------------------------------");
//삭제
System.out.println("총 구매 상품 수(삼겹살 구매 전): " + set.size());
set.remove("삼겹살");
System.out.println("총 구매 상품 수(삼겹살 구매 후): " + set.size());
System.out.println("------------------------------");
// 전체 삭제
set.clear();
if (set.isEmpty()){
System.out.println("남은 구매 상품 수: " + set.size());
System.out.println("집으로 출발");
}
System.out.println("------------------------------");
// 세트: 중복 허용 x , 순서 보장도 x
// 링크드해쉬셋은 들어간 순서대로 저장됨.
HashSet<Integer> intSet = new HashSet<>();
// HashSet<Integer> intSet = new LinkedHashSet<>(); --> 값을 넣은 순서대로 저장
intSet.add(1);
intSet.add(13);
intSet.add(2);
for (int i :
intSet) {
System.out.println(i);
}
}
}
3. 스스로 해보기
package WorkOut_Myself;
import java.util.HashSet;
import java.util.LinkedHashSet;
public class HashSet_Myself {
public static void main(String[] args) {
// 선언
HashSet<String> Memo = new HashSet<>();
// 데이터 추가
Memo.add("Get up Early");
Memo.add("Study Java");
Memo.add("Study Spring");
Memo.add("Study Java");
Memo.add("Study Spring");
Memo.add("Study HTML");
Memo.add("Study CSS");
Memo.add("Study JavaScript");
Memo.add("write 10 grateful things");
System.out.println("-------------------------------------");
// 총 상품 수 출력
System.out.println("to do list (today): " + Memo.size());
// 순회
for (String s :
Memo) {
System.out.println(s);
}
System.out.println("-------------------------------------");
// 품목이 있는지 확인
if(Memo.contains("Study Java")){
System.out.println("오늘 자바 공부를 해야합니다.");
}
System.out.println("-------------------------------------");
// 삭제
Memo.remove("Study CSS");
if(Memo.contains("Study CSS")){
System.out.println("오늘 CSS 공부를 해야합니다.");
}
else {
System.out.println("오늘 CSS 공부 안 해도 됩니다.");
}
System.out.println("-------------------------------------");
// 전체 삭제
Memo.clear();
System.out.println("남은 할 일 수는? " + Memo.size());
// int HashSet 만들어서 값이 넣은 순서대로 저장되는지 보기
HashSet<Integer> RandomDigit = new HashSet<>();
RandomDigit.add(1);
RandomDigit.add(14951);
RandomDigit.add(233250);
RandomDigit.add(40430643);
RandomDigit.add(77777);
RandomDigit.add(97971093);
for (int i :
RandomDigit) {
System.out.println(i);
}
System.out.println("-------------------------------------");
// 순서대로 값을 저장할려면?
HashSet<Integer>StraightDigit = new LinkedHashSet<>();
StraightDigit.add(1);
StraightDigit.add(14951);
StraightDigit.add(233250);
StraightDigit.add(40430643);
StraightDigit.add(77777);
StraightDigit.add(97971093);
for (int i :
StraightDigit) {
System.out.println(i);
}
}
}
'Language > Java' 카테고리의 다른 글
[JAVA] Iterator (0) | 2023.02.15 |
---|---|
[JAVA] HashMap (0) | 2023.02.13 |
[JAVA] Linked List (0) | 2023.02.08 |
[JAVA] ArrayList (0) | 2023.02.07 |
[JAVA] Wrapper Class (0) | 2023.02.07 |