Java Set类

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:Java

在这里插入图片描述


👉🏻set

1. 接口与实现

Java 的 Set 接口是 Java Collections Framework 的一部分,用于存储不重复的元素集合。常见的实现类有:

  • HashSet:基于哈希表实现,提供快速的查找和插入,元素无序。
  • LinkedHashSet:维护插入顺序,性能与 HashSet 相似。
  • TreeSet:基于红黑树实现,元素按自然顺序排序或指定的比较器排序。

2. 特性

  • 唯一性:不允许重复元素。
  • 无序性HashSetLinkedHashSet 不保持元素的顺序,而 TreeSet 会保持排序。
  • 动态大小:可以根据需要动态扩展。

3. 常用方法

  • add(E e):添加元素,如果已存在则返回 false。
  • remove(Object o):移除指定元素。
  • contains(Object o):检查集合中是否包含指定元素。
  • size():返回集合中元素的数量。
  • isEmpty():判断集合是否为空。

4. 示例代码

以下是使用 HashSet 的简单示例:

import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        Set<String> colors = new HashSet<>();
        
        // 添加元素
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");
        colors.add("Red"); // 重复元素不会被添加
        
        // 打印集合
        System.out.println(colors); // 输出: [Red, Green, Blue] (顺序不定)
        
        // 检查元素
        System.out.println(colors.contains("Green")); // 输出: true
        
        // 删除元素
        colors.remove("Blue");
        
        // 打印集合大小
        System.out.println(colors.size()); // 输出: 2
    }
}

5. 遍历

可以使用增强的 for 循环或迭代器遍历 Set

for (String color : colors) {
    System.out.println(color);
}

6. 线程安全

Set 的实现类通常不是线程安全的,但可以使用 Collections.synchronizedSet() 来创建线程安全的集合。

如果你想了解更具体的实现或用法,欢迎告诉我!

👉🏻set更多方法

当然,除了常用的基本方法,Set 接口还有一些其他的方法。以下是 Set 接口中定义的主要方法:

1. 其他常用方法

1.1. clear()

  • 描述:移除集合中的所有元素。
  • 返回:无返回值。

1.2. equals(Object o)

  • 描述:比较指定对象与集合的相等性。
  • 返回:如果对象与集合相等,则返回 true;否则返回 false。

1.3. hashCode()

  • 描述:返回集合的哈希码值,适用于集合的哈希表存储。
  • 返回:集合的哈希码值。

1.4. isEmpty()

  • 描述:检查集合是否为空。
  • 返回:如果集合没有元素则返回 true,否则返回 false。

1.5. iterator()

  • 描述:返回一个迭代器,用于遍历集合中的元素。
  • 返回Iterator<E> 类型的迭代器。

1.6. toArray()

  • 描述:将集合中的元素转换为一个数组。
  • 返回:包含集合中所有元素的数组。

1.7. toArray(T[] a)

  • 描述:将集合中的元素转换为指定类型的数组。
  • 返回:包含集合中所有元素的数组,如果提供的数组足够大,则使用该数组;否则,创建一个新数组。

2. 额外的方法

2.1. removeAll(Collection<?> c)

  • 描述:从集合中移除所有包含在指定集合中的元素。
  • 返回:如果集合发生变化,则返回 true;否则返回 false。

2.2. retainAll(Collection<?> c)

  • 描述:仅保留集合中包含在指定集合中的元素。
  • 返回:如果集合发生变化,则返回 true;否则返回 false。

2.3. containsAll(Collection<?> c)

  • 描述:检查集合是否包含指定集合中的所有元素。
  • 返回:如果集合包含所有指定元素,则返回 true;否则返回 false。

2.4. size()

  • 描述:返回集合中元素的数量。
  • 返回:集合中元素的数量。

如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值