Java HashSet

Java HashSet

HashSet 是一个项目集合,其中每个项都是唯一的,它在 java.util 包中:

实例

创建一个名为 carsHashSet 对象,该对象将存储字符串:

  1. import java.util.HashSet; // Import the HashSet class
  2. HashSet<String> cars = new HashSet<String>();

添加项

HashSet 类有许多有用的方法。例如,要向其中添加项,请使用 add() 方法:

实例
  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. HashSet<String> cars = new HashSet<String>();
  6. cars.add("Volvo");
  7. cars.add("BMW");
  8. cars.add("Ford");
  9. cars.add("BMW");
  10. cars.add("Mazda");
  11. System.out.println(cars);
  12. }
  13. }

注意:在上面的例子中,尽管 BMW 添加了两次,但它在设置中只出现一次,因为集合中的每个项都必须是唯一的。


检查项是否存在

要检查 HashSet 中是否存在项,请使用 contains() 方法:

实例
  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. HashSet<String> cars = new HashSet<String>();
  6. cars.add("Volvo");
  7. cars.add("BMW");
  8. cars.add("Ford");
  9. cars.add("BMW");
  10. cars.add("Mazda");
  11. System.out.println(cars.contains("Mazda"));
  12. }
  13. }

移除项

要删除项,请使用 remove() 方法:

实例
  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. HashSet<String> cars = new HashSet<String>();
  6. cars.add("Volvo");
  7. cars.add("BMW");
  8. cars.add("Ford");
  9. cars.add("BMW");
  10. cars.add("Mazda");
  11. cars.remove("Volvo");
  12. System.out.println(cars);
  13. }
  14. }

要移除所有项,请使用 clear() 方法:

实例
  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. HashSet<String> cars = new HashSet<String>();
  6. cars.add("Volvo");
  7. cars.add("BMW");
  8. cars.add("Ford");
  9. cars.add("BMW");
  10. cars.add("Mazda");
  11. cars.clear();
  12. System.out.println(cars);
  13. }
  14. }

HashSet 大小

要查询其中有多少项, 可以使用 size 方法:

实例
  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. HashSet<String> cars = new HashSet<String>();
  6. cars.add("Volvo");
  7. cars.add("BMW");
  8. cars.add("Ford");
  9. cars.add("BMW");
  10. cars.add("Mazda");
  11. System.out.println(cars.size());
  12. }
  13. }

循环遍历 HashSet

使用 for-each 循环遍历 HashSet 的项:

实例
  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. HashSet<string> cars = new HashSet<string>();
  6. cars.add("Volvo");
  7. cars.add("BMW");
  8. cars.add("Ford");
  9. cars.add("BMW");
  10. cars.add("Mazda");
  11. for (String i : cars) {
  12. System.out.println(i);
  13. }
  14. }
  15. }

其他类型

HashSet 中的项实际上是对象。在上面的例子中,我们使用了 "String" 类型的对象。请记住,Java 中的字符串是对象(而不是基本类型)。要使用其他类型,例如 int,必须指定一个等效的包装类Integer。对于其他基本类型,使用:Boolean 表示布尔,Character 表示字符,Double 表示双精度,等等:

实例

使用存储 Integer 整数对象的 HashSet

  1. // Import the HashSet class
  2. import java.util.HashSet;
  3. public class Main {
  4. public static void main(String[] args) {
  5. // Create a HashSet object called numbers
  6. HashSet<Integer> numbers = new HashSet<Integer>();
  7. // Add values to the set
  8. numbers.add(4);
  9. numbers.add(7);
  10. numbers.add(8);
  11. // Show which numbers between 1 and 10 are in the set
  12. for(int i = 1; i <= 10; i++) {
  13. if(numbers.contains(i)) {
  14. System.out.println(i + " was found in the set.");
  15. } else {
  16. System.out.println(i + " was not found in the set.");
  17. }
  18. }
  19. }
  20. }