logo

자바 해시세트

Java HashSet 클래스 계층 구조

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 작업