CodeGym/Java 博客/China/Java 中的 HashSet contains() 方法
作者
John Selawsky
Senior Java Developer and Tutor at LearningTree

Java 中的 HashSet contains() 方法

已在 China 群组中发布
个会员

什么是 HashSet?

HashSet 是 Java 中的一种内置数据类型,通俗而言,你可以说“HashSet 是唯一元素的无序集合。” 参见下面的基本示例: Java 中的 HashSet contains() 方法 - 1

图 1:显示 HashSet 有效和无效示例的插图

(在继续之前,我们希望你了解术语哈希哈希表。) HashSet 扩展(扩展意味着类继承自另一个类)AbstractSet 并实现 Set 接口。在使用 HashSet 之前,需要考虑以下几点:
  • 它会创建集合(集合意思是一个单一的对象单元,例如:ArrayList、LinkedList、Vector 等)集合会将哈希表用作存储。
  • HashSet 中不允许存在重复值。
  • 你可以在 HashSet 中插入“null”值。
  • 不要维护插入顺序。因此,如果你要按顺序插入项目,则 HashSet 并非最佳选择,将无法满足你的需求。
  • 如果你想在固定的时间 (O(1)) 内获取/检索元素,那么 HashSet 是最好的方法之一。

什么是 HashSet.contains() 方法?

HashSet.contains() 是一个用于检查某个项目是否出现在 HashSet 实例中的布尔方法。简单来说,就是集合中是否包含所需的元素。Java.util.HashSet 提供对该方法的有效实现。 我们将介绍如何有效地使用它来解决你的问题。

含整数的 contains()

import java.util.HashSet;

public class HashSetDemo {
   public static void main(String[] args) {

       // Declare your hash set
       HashSet digits = new HashSet();

       digits.add(0);
       digits.add(1);
       digits.add(2);
       digits.add(3);
       digits.add(4);
       digits.add(5);
       digits.add(null);
       System.out.println("All elements in hashset:\t" + digits);

       // Try adding duplicates
       digits.add(5);
       digits.add(2);
       System.out.println("After adding duplicates: \t" + digits);

       System.out.println("\n-------Using Contains Method-------");
       // Check out if the following digits exist in the hashset
       System.out.println("digits.contains(0) : " + digits.contains(0));
       System.out.println("digits.contains(2) : " + digits.contains(2));
       System.out.println("digits.contains(3) : " + digits.contains(7));
       System.out.println("digits.contains(null) : " + digits.contains(null));
   }
}
输出
哈希集中的所有元素:[0, null, 1, 2, 3, 4, 5] 添加重复项后:[0, null, 1, 2, 3, 4, 5] -------使用 Contains 方法------- digits.contains(0) : true digits.contains(2) : true digits.contains(3) : false digits.contains(null) : true

带字符串的 contains()

看看带 Stringscontains() 方法的另一个示例。
import java.util.HashSet;
public class HashSetDemo {
     public static void main(String[] args) {

	  // Try working with another hash set of String type
	  HashSet rainbow = new HashSet();

        // Adding elements into HashSet using add()
        rainbow.add("Red");
        rainbow.add("Orange");
        rainbow.add("Yellow");
        rainbow.add("Green");
        rainbow.add("Blue");
        rainbow.add("Indigo");
        rainbow.add("Violet");


        // Let's traverse the hashset
        System.out.println("Traversing the rainbow:");
        for (String i : rainbow){
             System.out.println(i);
        }
       // Check out if rainbow contains this color or not
    	 System.out.println("\n-------Using Contains Method-------");

        System.out.println("rainbow.contains(\"Yellow\"): \t" + rainbow.contains("Yellow"));
        System.out.println("rainbow.contains(\"White\"): \t"  + rainbow.contains("White"));
        System.out.println("rainbow.contains(\"Lavender\"): \t"  + rainbow.contains("Lavender"));
        System.out.println("rainbow.contains(\"Red\"): \t"  + rainbow.contains("Red"));

        // Remove a color from rainbow using remove()
        rainbow.remove("Red");

        // Now consume  set contains() method again to check if it's still present
        System.out.println("rainbow.contains(\"Red\"): \t"  + rainbow.contains("Red"));

        System.out.println("\nAfter removing Red: " + rainbow);
	}
}
输出
遍历彩虹: 红色 紫色 黄色 蓝色 靛色 橙色 绿色 -------使用 Contains 方法------- rainbow.contains("黄色"):true rainbow.contains("白色"):false rainbow.contains("淡紫色"):false rainbow.contains("红色"):true rainbow.contains("红色"):false 移除红色后:[紫色, 黄色, 蓝色, 靛蓝, 橙色, 绿色]
如你所见,输出的顺序与将元素放入 Hashset 的顺序不同。 Java 中的 HashSet contains() 方法 - 2

结论

HashSet 的 contains() 方法是一个相当易于使用的方法。不过,如果有任何不懂的地方,可以参考这篇贴文。快乐编码!:)
评论
  • 受欢迎
你必须先登录才能发表评论
此页面还没有任何评论