Java教程

Java HashSet

Java HashSet类层次结构
Java HashSet类用于创建使用哈希表进行存储的集合。它继承了AbstractSet类并实现Set接口。
关于Java HashSet类的要点是:
HashSet使用称为 hashing"的机制存储元素。 HashSet仅包含唯一元素。 HashSet允许为空值。 HashSet类未同步。 HashSet不维护插入顺序。这里,元素是根据其哈希码插入的。 HashSet是搜索操作的最佳方法。 HashSet的初始默认容量为16,负载因子为0.75。

列表和集合之间的差异

列表可以包含重复元素,而集合仅包含唯一元素。

层次结​​构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类的构造函数

构造函数 说明
HashSet() 它用于构造默认的HashSet。
HashSet(int capacity) 用于将散列集的容量初始化为给定的整数值容量。随着元素添加到HashSet中,容量会自动增长。
HashSet(int capacity, float loadFactor) 用于将哈希集的容量初始化为给定的整数值容量和指定的负载系数。
HashSet(Collection c) 它用于通过使用集合c的元素来初始化哈希集。

Java HashSet类的方法

Java HashSet类的各种方法如下:
修饰符和类型 方法 说明
boolean add(E e) 用于将指定的元素添加到此集中(如果尚不存在)。
void clear() 它用于从集合中删除所有元素。
object clone() 它用于返回此HashSet实例的浅表副本: 元素本身不会被克隆。
boolean contains(Object o) 如果此集合包含指定的元素,则用于返回true。
boolean isEmpty() 如果此集合不包含任何元素,则用于返回true。
Iterator iterator() 用于在此集合中的元素上返回迭代器。
boolean remove(Object o) 用于从该集中删除指定的元素(如果存在)。
int size() 它用于返回集合中的元素数量。
Spliterator spliterator() 它用于在集合中的元素上创建后绑定和快速失败的Spliterator。

Java HashSet示例

我们来看一个简单的HashSet示例。注意,元素在无序集合中进行迭代。
import java.util.*;
class HashSet1{
    public static void main(String args[]){
        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[]){
        HashSet<String> set=new HashSet<String>();
        set.add("Ravi");
        set.add("Vijay");
        set.add("Ravi");
        set.add("Ajay");
        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);
        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);
        HashSet set.removeAll(set1);
        System.out.println("After invoking removeAll() method: "+set);
        set.removeIf(str->str.contains("Vijay"));
        System.out.println("After invoking removeIf() method: "+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<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>();
        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);
        HashSet set.add(b1);
        set.add(b2);
        set.add(b3);
        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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4