Java HashSet

本文概述

  • 列表和集合之间的区别
  • Java HashSet类的构造方法
  • Java HashSet类的方法
Java HashSet

文章图片
Java HashSet类用于创建使用哈希表进行存储的集合。它继承了AbstractSet类并实现Set接口。
【Java HashSet】关于Java HashSet类的要点是:
  • HashSet通过使用一种称为哈希的机制来存储元素。
  • HashSet仅包含唯一元素。
  • HashSet允许为空值。
  • HashSet类不同步。
  • HashSet不会保持插入顺序。在这里, 元素是根据其哈希码插入的。
  • HashSet是搜索操作的最佳方法。
  • HashSet的初始默认容量为16, 而负载系数为0.75。
列表和集合之间的区别 列表可以包含重复元素, 而Set仅包含唯一元素。
HashSet类的层次结构
HashSet类扩展了实现Set接口的AbstractSet类。 Set接口以层次结构顺序继承Collection和Iterable接口。
HashSet类声明
让我们来看一下java.util.HashSet类的声明。
public class HashSet< E> extends AbstractSet< E> implements Set< E> , Cloneable, Serializable

Java HashSet类的构造方法
序号 建设者 描述
1) HashSet() 它用于构造默认的HashSet。
2) HashSet(int capacity) 它用于将哈希集的容量初始化为给定的整数容量。随着将元素添加到HashSet中, 容量会自动增长。
3) HashSet(int capacity, float loadFactor) 它用于将哈希集的容量初始化为给定的整数容量和指定的负载因子。
4) HashSet(Collection < ?扩展E> c) 它用于通过使用集合c的元素来初始化哈希集。
Java HashSet类的方法 Java HashSet类的各种方法如下:
序号 编辑并输入 方法 描述
1) boolean add(E e) 如果指定的元素尚不存在, 则用于将其添加到此集合中。
2) void clear() 它用于删除集合中的所有元素。
3) object clone() 它用于返回此HashSet实例的浅表副本:元素本身未克隆。
4) boolean contains(Object o) 如果此集合包含指定的元素, 则用于返回true。
5) boolean isEmpty() 如果此集合不包含任何元素, 则用于返回true。
6) Iterator< E> iterator() 它用于返回此集合中元素的迭代器。
7) boolean remove(Object o) 如果存在指定元素, 则用于从该集合中删除该元素。
8) int size() 它用于返回集合中的元素数。
9) Spliterator< E> spliterator() 它用于在集合中的元素上创建后绑定和故障快速的Spliterator。
Java HashSet示例
让我们看一个简单的HashSet示例。注意, 元素在无序集合中进行迭代。
import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet< String> set=new HashSet(); set.add("One"); set.add("Two"); set.add("Three"); set.add("Four"); set.add("Five"); Iterator< String> 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< String> set=new HashSet< String> (); set.add("Ravi"); set.add("Vijay"); set.add("Ravi"); set.add("Ajay"); //Traversing elements Iterator< String> 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< String> set=new HashSet< String> (); 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< String> set1=new HashSet< String> (); 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: []

来自另一个Collection的Java HashSet
import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList< String> list=new ArrayList< String> (); list.add("Ravi"); list.add("Vijay"); list.add("Ajay"); HashSet< String> set=new HashSet(list); set.add("Gaurav"); Iterator< String> 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< Book> set=new HashSet< Book> (); //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的工作

    推荐阅读