当前位置:首页 > Java

java如何使用set

2026-03-22 18:50:29Java

使用 Set 的基本方法

在 Java 中,Set 是一个不包含重复元素的集合接口,常见的实现类有 HashSetLinkedHashSetTreeSet。以下是 Set 的基本使用方法。

创建 Set 对象

Set<String> hashSet = new HashSet<>();
Set<String> linkedHashSet = new LinkedHashSet<>();
Set<String> treeSet = new TreeSet<>();

添加元素

hashSet.add("Apple");
hashSet.add("Banana");
hashSet.add("Orange");

检查元素是否存在

boolean containsApple = hashSet.contains("Apple");

删除元素

hashSet.remove("Banana");

遍历元素

for (String fruit : hashSet) {
    System.out.println(fruit);
}

Set 的实现类比较

HashSet

  • 基于哈希表实现,不保证元素的顺序。
  • 插入、删除和查找操作的时间复杂度为 O(1)。

LinkedHashSet

  • 基于哈希表和链表实现,维护元素的插入顺序。
  • 插入、删除和查找操作的时间复杂度为 O(1)。

TreeSet

java如何使用set

  • 基于红黑树实现,元素按自然顺序或自定义比较器排序。
  • 插入、删除和查找操作的时间复杂度为 O(log n)。

常用操作示例

初始化并添加元素

Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);

获取 Set 的大小

int size = numbers.size();

清空 Set

numbers.clear();

判断 Set 是否为空

boolean isEmpty = numbers.isEmpty();

集合操作

并集

java如何使用set

Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5));
set1.addAll(set2); // set1 现在包含 [1, 2, 3, 4, 5]

交集

set1.retainAll(set2); // set1 现在包含 [3]

差集

set1.removeAll(set2); // set1 现在包含 [1, 2]

自定义对象使用 Set

如果要在 Set 中存储自定义对象,必须重写 equals()hashCode() 方法,以确保对象唯一性。

class Person {
    private String name;
    private int age;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

使用 TreeSet 排序

TreeSet 可以按自然顺序或自定义比较器排序。

自然排序

Set<String> treeSet = new TreeSet<>();
treeSet.add("Banana");
treeSet.add("Apple");
treeSet.add("Orange");
// 输出顺序为 Apple, Banana, Orange

自定义排序

Set<Person> people = new TreeSet<>(Comparator.comparingInt(Person::getAge));

分享给朋友:

相关文章

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

react如何使用redux

react如何使用redux

使用 Redux 在 React 中的应用 Redux 是一个状态管理库,通常与 React 结合使用以管理全局状态。以下是具体实现步骤: 安装依赖 确保项目中已安装 redux 和 react-r…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…