Java HashSet
上次修改时间:2024 年 3 月 6 日
在本文中,我们将展示如何使用 Java HashSet 集合。
HashSet
是一个不包含重复元素的集合。 该类为基本操作(添加、删除、包含和大小)提供恒定时间性能。 HashSet
不提供元素的排序。 HashSet
没有 get
方法来检索元素。
HashSet
实现了 Set
接口。 Set
是一个没有重复项的集合。 此接口模拟数学集合的抽象。
示例一
以下示例创建一个 HashSet
,确定其大小,并将所有元素打印到控制台。
import java.util.HashSet; import java.util.Set; void main() { Set<String> brands = new HashSet<>(); brands.add("Wilson"); brands.add("Nike"); brands.add("Volvo"); brands.add("IBM"); brands.add("IBM"); int nOfElements = brands.size(); System.out.format("The set contains %d elements%n", nOfElements); System.out.println(brands); }
在代码示例中,我们创建了一个品牌 HashSet
。 每个品牌都必须是唯一的。 例如,不能注册两家 IBM 公司。
brands.add("IBM"); brands.add("IBM");
即使我们尝试将一个品牌添加两次,一个集合也只包含一个 IBM 品牌。
int nOfElements = brands.size();
我们确定 brands
集合的大小。
System.out.println(brands);
所有元素都将打印到控制台。
$ java Main.java The set contains 4 elements [Nike, Volvo, IBM, Wilson]
示例二
在以下示例中,我们展示 add
、remove
、removeAll
和 isEmpty
方法。
import java.util.HashSet; import java.util.Set; void main() { Set<String> brands = new HashSet<>(); brands.add("Wilson"); brands.add("Nike"); brands.add("Volvo"); brands.add("Kia"); brands.add("Lenovo"); Set<String> brands2 = new HashSet<>(); brands2.add("Wilson"); brands2.add("Nike"); brands2.add("Volvo"); System.out.println(brands); brands.remove("Kia"); brands.remove("Lenovo"); System.out.println(brands); brands.removeAll(brands2); System.out.println(brands); if (brands.isEmpty()) { System.out.println("The brands set is empty"); } }
该示例构建一个品牌 HashSet
并从中删除元素。
System.out.println(brands);
初始 HashSet
将打印到控制台。
brands.remove("Kia"); brands.remove("Lenovo"); System.out.println(brands);
我们使用 remove
删除两个元素,并将 brands
的内容打印到控制台。
brands.removeAll(brands2); System.out.println(brands);
最后,我们从第一个集合中删除第二个集合中包含的所有元素。
if (brands.isEmpty()) { System.out.println("The brands set is empty"); }
如果 brands
集合为空,我们将向终端打印一条消息。
$ java Main.java [Nike, Lenovo, Kia, Volvo, Wilson] [Nike, Volvo, Wilson] [] The brands set is empty
示例三
在以下示例中,我们使用 add
、contains
、clear
和 isEmpty
方法。
import java.util.HashSet; import java.util.Set; void main() { Set<String> brands = new HashSet<>(); brands.add("Wilson"); brands.add("Nike"); brands.add("Volvo"); brands.add("Kia"); brands.add("Lenovo"); if (brands.contains("Wilson")) { System.out.println("The set contains the Wilson element"); } else { System.out.println("The set does not contain the Wilson element"); } if (brands.contains("Apple")) { System.out.println("The set contains the Apple element"); } else { System.out.println("The set does not contain the Apple element"); } brands.clear(); if (brands.isEmpty()) { System.out.println("The set does not contain any elements."); } }
在该示例中,我们检查集合中是否存在两个元素。
if (brands.contains("Wilson")) { System.out.println("The set contains the Wilson element"); } else { System.out.println("The set does not contain the Wilson element"); }
我们检查 "Wilson" 品牌是否存在于集合中,并相应地打印一条消息。
$ java Main.java The set contains the Wilson element The set does not contain the Apple element The set does not contain any elements.
HashSet 迭代
我们可以使用 forEach
方法来迭代 HashSet
的元素。 forEach
方法为集合的每个元素执行给定的操作,直到所有元素都已处理完毕或该操作抛出异常。
import java.util.HashSet; import java.util.Set; void main() { Set<String> brands = new HashSet<>(); brands.add("Wilson"); brands.add("Nike"); brands.add("Volvo"); brands.add("Kia"); brands.add("Lenovo"); brands.forEach(e -> System.out.println(e)); }
使用 forEach
方法,我们迭代集合并将其元素打印到控制台。
迭代器是一个用于迭代集合的对象。 迭代器通过 iterator
检索。
import java.util.HashSet; import java.util.Iterator; import java.util.Set; void main() { Set<String> brands = new HashSet<>(); brands.add("Wilson"); brands.add("Nike"); brands.add("Volvo"); brands.add("Kia"); brands.add("Lenovo"); Iterator<String> it = brands.iterator(); while (it.hasNext()) { String element = it.next(); System.out.println(element); } }
代码示例迭代 HashSet
的所有元素并将它们打印到控制台。
可以使用增强的 for 循环来迭代 HashSet
。
import java.util.HashSet; import java.util.Set; void main() { Set<String> brands = new HashSet<>(); brands.add("Wilson"); brands.add("Nike"); brands.add("Volvo"); brands.add("Kia"); brands.add("Lenovo"); for (String brand: brands) { System.out.println(brand); } }
在该示例中,我们使用增强的 for 循环迭代 HashSet
。
for (String brand: brands) { System.out.println(brand); }
在每个 for 循环中,一个新元素被分配给 brand
变量。
来源
在本文中,我们介绍了 Java HashSet
集合。
作者
列出所有Java教程。