Java HashSet 클래스는 저장을 위해 해시 테이블을 사용하는 컬렉션을 만드는 데 사용됩니다. AbstractSet 클래스를 상속하고 Set 인터페이스를 구현합니다.
Java HashSet 클래스의 중요한 점은 다음과 같습니다.
스피커가 뭐야?
- HashSet은 다음과 같은 메커니즘을 사용하여 요소를 저장합니다. 해싱.
- HashSet에는 고유 요소만 포함됩니다.
- HashSet은 null 값을 허용합니다.
- HashSet 클래스가 동기화되지 않았습니다.
- HashSet은 삽입 순서를 유지하지 않습니다. 여기에서는 해시코드를 기반으로 요소가 삽입됩니다.
- HashSet은 검색 작업에 가장 적합한 접근 방식입니다.
- HashSet의 초기 기본 용량은 16이고, 부하율은 0.75입니다.
목록과 집합의 차이점
목록에는 중복된 요소가 포함될 수 있지만 Set에는 고유한 요소만 포함됩니다.
HashSet 클래스의 계층 구조
HashSet 클래스는 Set 인터페이스를 구현하는 AbstractSet 클래스를 확장합니다. Set 인터페이스는 계층적 순서로 Collection 및 Iterable 인터페이스를 상속합니다.
HashSet 클래스 선언
java.util.HashSet 클래스 선언을 살펴보겠습니다.
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Java HashSet 클래스의 생성자
SN | 건설자 | 설명 |
---|---|---|
1) | 해시세트() | 기본 HashSet을 구성하는 데 사용됩니다. |
2) | HashSet(정수 용량) | 주어진 정수값 용량으로 설정된 해시의 용량을 초기화하는데 사용됩니다. HashSet에 요소가 추가되면 용량이 자동으로 늘어납니다. |
삼) | HashSet(int 용량, float loadFactor) | 주어진 정수값 용량과 지정된 부하율로 설정된 해시의 용량을 초기화하는 데 사용됩니다. |
4) | HashSet(컬렉션 c) | 컬렉션 c의 요소를 사용하여 해시 세트를 초기화하는 데 사용됩니다. |
Java HashSet 클래스의 메소드
Java HashSet 클래스의 다양한 메소드는 다음과 같습니다.
SN | 수정자 및 유형 | 방법 | 설명 |
---|---|---|---|
1) | 부울 | 추가(E e) | 지정된 요소가 아직 존재하지 않는 경우 이 세트에 지정된 요소를 추가하는 데 사용됩니다. |
2) | 무효의 | 분명한() | 세트에서 모든 요소를 제거하는 데 사용됩니다. |
삼) | 물체 | 클론() | 이 HashSet 인스턴스의 얕은 복사본을 반환하는 데 사용됩니다. 요소 자체는 복제되지 않습니다. |
4) | 부울 | 포함(객체 o) | 이 세트에 지정된 요소가 포함되어 있으면 true를 반환하는 데 사용됩니다. |
5) | 부울 | 비었다() | 이 세트에 요소가 없으면 true를 반환하는 데 사용됩니다. |
6) | 반복자 | 반복자() | 이 세트의 요소에 대한 반복자를 반환하는 데 사용됩니다. |
7) | 부울 | 제거(객체 o) | 존재하는 경우 이 세트에서 지정된 요소를 제거하는 데 사용됩니다. |
8) | 정수 | 크기() | 집합의 요소 수를 반환하는 데 사용됩니다. |
9) | 분할기 | 분할기() | 집합의 요소에 대해 지연 바인딩 및 빠른 실패 Spliterator를 만드는 데 사용됩니다. |
Java HashSet 예
HashSet의 간단한 예를 살펴보겠습니다. 요소는 순서가 지정되지 않은 컬렉션에서 반복됩니다.
import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Five One Four Two Three
중복 요소를 무시하는 Java HashSet 예
이 예에서는 HashSet이 중복 요소를 허용하지 않는다는 것을 알 수 있습니다.
import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Ajay Vijay Ravi
요소를 제거하는 Java HashSet 예제
여기서는 요소를 제거하는 다양한 방법을 볼 수 있습니다.
안드로이드에서 유튜브 광고를 차단하는 방법
import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } }
An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: []
다른 컬렉션의 Java HashSet
import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Vijay Ravi Gaurav Ajay
Java HashSet 예: 도서
모든 책을 설정하고 인쇄하기 위해 책을 추가하는 HashSet 예제를 살펴보겠습니다.
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
산출:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
당신은 또한 다음을 좋아할 수도 있습니다:
Java에서 HashSet 작업