Java의 HashSet은 다음의 가장 중요한 측면 중 하나입니다. . 일반적으로 순서가 지정되지 않은 방식으로 고유 한 값을 저장하는 데 사용됩니다. Java의 HashSet에 대한이 기사의 매체를 통해 HashSet이 정확히 무엇인지, 그리고이를 애플리케이션에서 어떻게 사용할 수 있는지에 대한 완전한 설명을 제공 할 것입니다.
이 기사에서 다루는 주제는 다음과 같습니다.
- 자바의 HashSet
- 자바 HashSet 대 HashMap
- HashSet 계층
- java.util.HashSet 클래스 생성자
- java.util.HashSet 클래스의 메소드
- Java 프로그램에서 HashSet 구현
먼저 Java에서 HashSet이 무엇인지 이해하는 것으로 시작하겠습니다.
자바의 HashSet
java.util.HashSet 수업 Java 컬렉션 프레임 워크의 멤버입니다.AbstractSet 클래스를 상속하고구현세트 상호 작용 . 고유 한 요소 모음을 만들고 저장하기위한 해시 테이블을 암시 적으로 구현합니다. Hashtable은 HashSet 내에 정보를 저장하기 위해 해싱 메커니즘을 사용하는 HashMap 클래스의 인스턴스 일뿐입니다.
해싱은 정보 콘텐츠를 해시 코드로 더 널리 알려진 고유 한 값으로 변환하는 프로세스입니다. 이 해시 코드는 키와 관련된 데이터를 인덱싱하는 데 사용됩니다. 정보 키를 해시 코드로 변환하는 전체 프로세스는 내부적으로 수행됩니다.
이제 Java의 HashSet에 대해 더 잘 이해하기 위해 몇 가지 기능을 나열하겠습니다.
- Java의 HashSet은 중복 값을 허용하지 않습니다.
- null 값을 포함 할 수 있습니다.
- HashSet은 데이터 저장을위한 삽입 순서를 따르지 않고 그 안의 값을 색인화하기 위해 해시 코드를 사용합니다.
- 비입니다 동기화 됨 자동으로 스레드가 안전하지 않게 만듭니다.
- HashSet 클래스는 또한 Cloneable 및직렬화 가능한 인터페이스.
이제 Java에서 HashSet이 정확히 무엇인지 알게되었으므로이 기사를 계속 진행하고 Java에서 HashMap과 HashSet의 차이점을 설명하겠습니다.
자바 HashSet 대 HashMap
HashSet | HashMap |
구현java.util.인터페이스 설정 | 구현java.util.Map |
데이터를 객체로 저장 | 키-값 쌍의 형태로 데이터를 저장합니다. |
HashSet은 객체 초기화를 위해 하나의 매개 변수 만 필요합니다. | 객체 초기화를 위해 두 개의 매개 변수 (키, 값)가 필요합니다. |
중복 요소를 허용하지 않습니다. | 중복 키는 허용되지 않지만 중복 값은 저장할 수 있습니다. |
단일 null 값 허용 | 단일 null 키와 임의의 수의 null 값을 허용합니다. |
HashSet 사용 add ()데이터 추가 또는 저장 방법 | HashMap은 데이터 저장을 위해 put () 메서드를 사용합니다. |
이제 HashMap과 HashSet을 명확히 구분 했으므로 이제 HashSet에 다시 집중하고 더 자세히 살펴 보겠습니다. 이 기사의 다음 섹션에서는 Java에서 HashSet의 전체 계층 구조를 소개합니다.
자바의 HashSet 계층
아래 그림에서 볼 수 있듯이HashSet 클래스는 Set 인터페이스를 구현합니다. Set 인터페이스는 Collection 인터페이스를 상속하여 결국 계층 적 순서로 Iterable 인터페이스를 확장합니다.
PHP에서 에코는 무엇입니까
이제이 HashSet in Java 기사로 진행하여 다양한 생성자 이 클래스에서 지원합니다.
java.util.HashSet 클래스 생성자
빌더 | 기술 |
HashSet () | HashSet 클래스의 기본 생성자입니다. |
HashSet (int 용량) | 이 생성자는 해시 세트의 초기 용량을 초기화하는 데 사용됩니다. 새로운 요소를 추가하면 용량이 동적으로 증가 할 수 있습니다. |
HashSet (int 용량, float loadCapacity) | 이 생성자는 부하 용량과 함께 해시 세트의 초기 용량을 초기화하는 데 사용됩니다. |
HashSet (콜렉션 c) | 이 생성자는 초기화하는 데 사용됩니다.컬렉션 c의 요소를 사용하여 설정된 해시 |
이들은 HashSet 클래스의 네 가지 생성자였습니다. . 이제 다양한 것이 무엇인지 알아 보겠습니다. Java HashSet에 정의되어 있습니다.
java.util.HashSet 클래스의 메소드
방법 | 기술 |
부울 add (Object obj) | 이 메서드는 지정된 요소가없는 경우에만 HashSet에 추가하는 데 도움이됩니다. |
무효 clear () | 이 메서드는 HashSet에서 모든 요소를 제거하는 데 도움이됩니다. |
개체 clone () | 이 메소드는 HashSet 요소의 복제본이 아닌 HashSet 인스턴스의 얕은 사본을 리턴합니다. |
부울 contains (Object o) | 이 메서드는 전달 된 요소가 HashSet 내에있는 경우 true를 반환합니다. |
부울 isEmpty () | 이 메서드는 HashSet이 비어있는 경우 true를 반환합니다. |
반복자 iterator () | 이 메서드는 HashSet에있는 요소에 대한 반복자를 반환합니다. |
부울 제거 (Object o) | 이 메서드는 지정된 요소가있는 경우 HashSet에서 제거하는 데 도움이됩니다. |
int 크기 () | 이 메서드는 HashSet에있는 총 요소 수를 반환합니다. |
위에 나열된 메소드와 함께 Java의 HashSet 클래스에는 슈퍼 클래스에서.
이제 이러한 방법을 구현하고 코딩에 착수 해 보겠습니다.
Java 프로그램에서 HashSet 구현
아래 예에서는 HashSet 클래스에서 제공하는 여러 메서드를 시도하고 구현합니다.
import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// HashSet Set 생성 eduCourses = new HashSet () // HashSet에 새 요소 추가 eduCourses.add ( '빅 데이터') eduCourses.add ( 'Node.js') eduCourses.add ( 'Java') eduCourses.add ( 'Python') eduCourses.add ( 'Blockchain') eduCourses.add ( 'JavaScript') eduCourses. add ( 'Selenium') eduCourses.add ( 'AWS') eduCourses.add ( 'Machine Learning') eduCourses.add ( 'RPA') // 중복 요소 추가는 무시됩니다. eduCourses.add ( 'Java') eduCourses.add ( 'RPA') System.out.println (eduCourses) // HashSet에 특정 요소가 포함되어 있는지 확인합니다. String myCourse = 'Node.js'if (eduCourses.contains (myCourse)) {System.out.println (myCourse + ' is in the course list. ')} else {System.out.println (myCourse +'is not in the course list. ')} // 목록 목록을 사용하여 eduCourses 정렬 list = new ArrayList (eduCourses) Collections.sort (list) // HashSet의 정렬 된 요소를 인쇄합니다. System.out.println ( ' List를 사용하여 정렬 된 순서로 과정 인쇄 : '+ list) // remove ()를 사용하여 HashSet에서 항목 제거 eduCourses.remove ('Python ') // HashSet 항목 반복 System.out.println ('제거 후 과정 목록 반복 Python : ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // HashSet의 다른 객체 생성 HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ( 'Python') eduNewCourses.add ( 'Machine Learning') // HashSet에서 모든 새 요소 제거 eduCourses.removeAll (eduNewCourses) System.out.println ( 'removeAll () 호출 후 남은 메소드 과정 : '+ eduCourses) // 지정된 조건에 따라 요소 제거 eduCourses.removeIf (str-> str.contains ('Java ')) System.out.println ('removeIf () 메소드 호출 후 : '+ eduCourses) // eduNewCourses에 지정된 eduCourses에서 요소 제거 eduCourses.retainAll (eduNewCourses) System.out.println ( 'HashSet after'+ 'retainAll () operation : '+ eduNewCourses) // 세트에서 사용 가능한 모든 요소 제거 eduCourses.clear () System.out.println ('clear () 메소드 호출 후 : '+ eduCourses)}}
위의 코드를 실행하면 아래와 같이 출력됩니다.
이것으로 우리는이 기사의 끝으로 왔습니다. 개념을 선명하고 명확하게 유지할 수 있기를 바랍니다. 자세한 내용은 우리를 통해 .
이제 Java에서 HashSet이 무엇인지 이해 했으므로 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.
질문이 있으십니까? 이 'Java의 HashSet'기사의 주석 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.