21xrx.com
2024-11-05 14:52:37 Tuesday
登录
文章检索 我的文章 写文章
Java 中 Set 的 contains() 方法使用详解
2023-06-12 02:51:59 深夜i     --     --
Java Set contains()

Set 是 Java 中的一种集合类型,它的 contains() 方法可以用来判断一个元素是否存在于 Set 集合中。但该方法的使用可能存在一些小细节需要注意。本文将详细介绍 Set 的 contains() 方法用法,并提供实际案例以便读者更加深入理解。

首先,我们需要知道 Set 集合中不允许存在重复元素,因此在判断元素是否存在于 Set 中时需要满足以下两个条件:

1. HashSet 集合中的对象必须实现 hashCode() 和 equals() 方法;

2. TreeSet 集合中的对象必须实现 Comparable 接口或者在创建 TreeSet 对象时传入一个 Comparator 对象。

下面的代码示范了如何使用 HashSet 和 TreeSet 创建 Set 集合:


import java.util.HashSet;

import java.util.TreeSet;

public class SetDemo {

  public static void main(String[] args) {

    // 使用 HashSet 创建 Set 集合

    HashSet hashSet = new HashSet<>();

    hashSet.add("apple");

    hashSet.add("banana");

    hashSet.add("orange");

    hashSet.add("grape");

    // 使用 TreeSet 创建 Set 集合

    TreeSet treeSet = new TreeSet<>();

    treeSet.add(10);

    treeSet.add(20);

    treeSet.add(30);

    treeSet.add(40);

  }

}

接下来,我们可以使用 Set 的 contains() 方法来判断元素是否存在于集合中。示例代码如下:


System.out.println(hashSet.contains("apple")); // 输出 true

System.out.println(treeSet.contains(10)); // 输出 true

需要注意的是,对于自定义的对象,我们需要在对象中实现 hashCode() 和 equals() 方法。示例代码如下:


public class MyObject {

  private int id;

  private String name;

  public MyObject(int id, String name)

    this.id = id;

    this.name = name;

  

  @Override

  public int hashCode() {

    final int prime = 31;

    int result = 1;

    result = prime * result + id;

    result = prime * result + ((name == null) ? 0 : name.hashCode());

    return result;

  }

  @Override

  public boolean equals(Object obj) {

    if (this == obj)

      return true;

    if (obj == null)

      return false;

    if (getClass() != obj.getClass())

      return false;

    MyObject other = (MyObject) obj;

    if (id != other.id)

      return false;

    if (name == null) {

      if (other.name != null)

        return false;

    } else if (!name.equals(other.name))

      return false;

    return true;

  }

}

代码中,我们自定义了一个 MyObject 类,并实现了 hashCode() 和 equals() 方法。下面的示例代码演示了如何使用 MyObject 对象建立 HashSet 集合并使用 contains() 方法判断元素是否存在:


HashSet mySet = new HashSet<>();

MyObject obj1 = new MyObject(1, "apple");

MyObject obj2 = new MyObject(2, "banana");

MyObject obj3 = new MyObject(3, "orange");

mySet.add(obj1);

mySet.add(obj2);

mySet.add(obj3);

System.out.println(mySet.contains(obj1)); // 输出 true

方法

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章