Tìm hiểu HashSet trong Java là gì và cách bắt đầu với nó!



Bài viết này về HashSet trong Java sẽ cung cấp cho bạn một cái nhìn tổng quan đầy đủ về HashSet trong Java chính xác là gì và cách triển khai nó. Nó cũng sẽ nói về các phương thức và hàm tạo khác nhau được hỗ trợ bởi lớp HashSet của Java.

HashSet trong Java là một trong những khía cạnh quan trọng nhất của . Nó thường được sử dụng để lưu trữ các giá trị duy nhất theo cách không có thứ tự. Thông qua phương tiện của bài viết này về HashSet trong Java, tôi sẽ cung cấp cho bạn một hướng dẫn đầy đủ về HashSet chính xác là gì và cách bạn có thể sử dụng nó trong ứng dụng của mình.

Dưới đây là các chủ đề được đề cập trong bài viết này:





Hãy bắt đầu bằng cách tìm hiểu trước tiên về HashSet trong Java.

cách đảo ngược chuỗi python

HashSet trong Java



java.util.HashSet lớp học là một thành viên của khuôn khổ bộ sưu tập Java màkế thừa lớp AbstractSet vàthực hiệnBộ giao diện . Nó ngầm thực hiện một bảng băm để tạo và lưu trữ một tập hợp các phần tử duy nhất. Hashtable không là gì ngoài một phiên bản của lớp HashMap sử dụng cơ chế băm để lưu trữ thông tin bên trong HashSet.

Hashing là quá trình chuyển đổi nội dung thông tin thành một giá trị duy nhất, thường được gọi là mã băm. Mã băm này sau đó được sử dụng để lập chỉ mục dữ liệu được liên kết với khóa. Toàn bộ quá trình chuyển đổi khóa thông tin thành mã băm được thực hiện nội bộ.

Bây giờ để hiểu rõ hơn về HashSet trong Java, hãy để tôi liệt kê một vài tính năng của nó:



  1. HashSet trong Java không cho phép các giá trị trùng lặp.
  2. Nó có thể chứa các giá trị rỗng.
  3. HashSet không tuân theo thứ tự chèn để lưu trữ dữ liệu mà nó sử dụng mã băm để lập chỉ mục các giá trị bên trong.
  4. Nó không- đồng bộ điều này sẽ tự động làm cho nó không an toàn.
  5. Lớp HashSet cũng triển khai Cloneable vàCác giao diện có thể nối tiếp hóa.

Bây giờ bạn đã biết chính xác HashSet trong Java là gì, hãy tiến xa hơn với bài viết này và làm sáng tỏ sự khác biệt giữa HashMap và HashSet trong Java.

Java HashSet so với HashMap

HashSet Bản đồ băm
Triển khaijava.util.Đặt giao diệnTriển khaijava.util.Map
Lưu trữ dữ liệu dưới dạng đối tượngLưu trữ dữ liệu dưới dạng cặp khóa-giá trị
HashSet chỉ yêu cầu một tham số để khởi tạo đối tượng của nóNó yêu cầu hai tham số (khóa, giá trị) để khởi tạo đối tượng của nó
Không cho phép các phần tử trùng lặpKhông cho phép các khóa trùng lặp nhưng bạn có thể lưu trữ các giá trị trùng lặp
Cho phép một giá trị rỗngCho phép một khóa null và bất kỳ số lượng giá trị null nào
HashSet sử dụng add ()phương pháp thêm hoặc lưu trữ dữ liệuHashMap sử dụng phương thức put () để lưu trữ dữ liệu

Bây giờ bạn đã phân biệt rõ ràng giữa HashMap và HashSet, bây giờ chúng ta hãy tập trung vào HashSet một lần nữa và tìm hiểu sâu hơn về nó. Trong phần tiếp theo của bài viết này, tôi sẽ giới thiệu với bạn về cấu trúc phân cấp hoàn chỉnh của HashSet trong Java.

có thể thay đổi và bất biến trong java

HashSet Hierarchy trong Java

Như bạn có thể thấy từ sơ đồ bên dưới,Lớp HashSet thực hiện giao diện Đặt. Giao diện Set kế thừa giao diện Collection, giao diện này cuối cùng sẽ mở rộng giao diện Iterable theo thứ tự phân cấp.

Hệ thống phân cấp HashSet trong Java - HashSet trong Java - Edureka

Bây giờ, tiếp tục với bài viết HashSet trong Java này, hãy cùng chúng tôi khám phá các người xây dựng được hỗ trợ bởi lớp này.

Các trình xây dựng của Lớp java.util.HashSet

Người xây dựng Sự miêu tả
HashSet () Đây là hàm tạo mặc định của lớp HashSet
HashSet (int dung lượng) Hàm khởi tạo này được sử dụng để khởi tạo dung lượng ban đầu của bộ băm. Năng lực có thể phát triển năng động với việc bổ sung các yếu tố mới
HashSet (int dung lượng, float loadCapacity) Hàm tạo này được sử dụng để khởi tạo dung lượng ban đầu của bộ băm cùng với khả năng tải
HashSet (Bộ sưu tập c) Hàm tạo này được sử dụng để khởi tạobộ băm bằng cách sử dụng các phần tử từ Bộ sưu tập c

Đây là bốn hàm tạo của lớp HashSet trong . Bây giờ chúng ta hãy tìm hiểu xem được định nghĩa trong Java HashSet.

Phương thức của lớp java.util.HashSet

phương pháp Sự miêu tả
boolean add (Object obj) Phương thức này chỉ giúp thêm một phần tử đã chỉ định vào HashSet nếu nó không có
void clear () Phương pháp này giúp xóa tất cả các phần tử khỏi HashSet
Bản sao đối tượng () Phương thức này trả về một bản sao nông của cá thể HashSet chứ không phải là bản sao của các phần tử HashSet
boolean chứa (Đối tượng o) Phương thức này trả về true nếu phần tử được truyền có mặt trong HashSet
boolean isEmpty () Phương thức này trả về true trong trường hợp HashSet trống
Trình lặp lặp lại lặp lại () Phương thức này trả về một trình lặp trên các phần tử có trong HashSet
boolean remove (Đối tượng o) Phương pháp này giúp xóa phần tử được chỉ định khỏi HashSet nếu nó hiện diện
int size () Phương thức này trả về tổng số phần tử có trong HashSet

Cùng với các phương thức được liệt kê ở trên, lớp HashSet trong Java cũng chứa từ các lớp cha của nó.

Bây giờ chúng ta hãy thử triển khai các phương pháp này và làm quen với việc viết mã.

Triển khai HashSet trong Chương trình Java

Trong ví dụ dưới đây, chúng tôi sẽ thử và triển khai một số phương thức được cung cấp bởi lớp HashSet.

import java.util.HashSet import java.util. * public class SampleHashSet {public static void main (String [] args) {// Tạo HashSet Set eduCourses = new HashSet () // Thêm phần tử mới vào HashSet eduCourses.add ('Dữ liệu lớn') 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') // Việc thêm các phần tử trùng lặp sẽ bị bỏ qua eduCourses.add ('Java') eduCourses.add ('RPA') System.out.println (eduCourses) // Kiểm tra xem HashSet có chứa một phần tử cụ thể String myCourse = 'Node.js' if (eduCourses.contains (myCourse)) {System.out.println (myCourse + 'hay không nằm trong danh sách các khóa học. ')} else {System.out.println (myCourse +' không có trong danh sách các khóa học. ')} // Sắp xếp các khóa học edu bằng cách sử dụng danh sách List List = new ArrayList (eduCourses) Collections.sort (danh sách) // In các phần tử đã sắp xếp của HashSet System.out.println (' In các Khóa học theo thứ tự đã sắp xếp bằng cách sử dụng Danh sách: '+ list) // Xóa các mục khỏi HashSet bằng remove () eduCourses.remove (' Python ') // Lặp lại các mục HashSet System.out.println (' Lặp lại trên danh sách khóa học sau khi xóa Python: ') Iterator i = eduCourses.iterator () while (i.hasNext ()) System.out.println (i.next ()) // Tạo một đối tượng khác của HashSet HashSet eduNewCourses = new HashSet () eduNewCourses.add ( 'Node.js') eduNewCourses.add ('Python') eduNewCourses.add ('Machine Learning') // Xóa tất cả các phần tử mới khỏi HashSet eduCourses.removeAll (eduNewCourses) System.out.println ('Sau khi gọi removeAll () các khóa phương thức còn lại: '+ eduCourses) // Xóa các phần tử trên cơ sở điều kiện đã chỉ định eduCourses.removeIf (str-> str.contains (' Java ')) System.out.println (' Sau khi gọi phương thức removeIf (): '+ eduCourses) // Xóa các phần tử khỏi eduCourses được chỉ định trong eduNewCourses eduCourses.retainAll (eduNewCourses) System.out.println ('HashSet after' + 'keepAll () hoạt động: '+ eduNewCourses) // Xóa tất cả các phần tử có sẵn trong tập hợp eduCourses.clear () System.out.println (' Sau khi gọi phương thức clear (): '+ eduCourses)}}

Khi bạn thực thi đoạn mã trên, nó sẽ cung cấp cho bạn kết quả được hiển thị bên dưới.

cách chạy nguyên tử python

Với điều này, chúng ta đi đến phần cuối của bài viết này. Hy vọng tôi có thể giữ cho các khái niệm rõ ràng và sắc nét. Bạn có thể tìm hiểu thêm về bằng cách đi qua của chúng tôi .

Bây giờ bạn đã hiểu HashSet trong Java là gì, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết “HashSet trong Java” này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.