常用实现类

  1. HashSet:

    • 基于哈希表实现,元素无序。
    • 插入、删除、查找操作的时间复杂度为O(1)。
  2. LinkedHashSet:

    • 继承自HashSet,并使用双向链表来维护元素的插入顺序。
    • 保留元素的插入顺序。
  3. TreeSet:

    • 基于红黑树实现,元素有序。
    • 插入、删除、查找操作的时间复杂度为O(log n)。
    • 默认按自然顺序排序,或者可以提供一个Comparator

Set接口常用方法

以下是Set接口中一些常用的方法及其使用示例:

添加元素

Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // 试图添加重复元素,不会添加成功

删除元素

set.remove("banana");

检查元素

boolean containsApple = set.contains("apple");
boolean containsBanana = set.contains("banana");

获取集合大小

int size = set.size(); // 获取集合中元素的个数

遍历集合

使用增强for循环:

for (String item : set) {
System.out.println(item);
}

使用迭代器:

Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}

清空集合

set.clear(); // 清空集合

判断集合是否为空

boolean isEmpty = set.isEmpty();

Set操作示例

import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet; public class SetExample {
public static void main(String[] args) {
// HashSet示例
Set<String> hashSet = new HashSet<>();
hashSet.add("apple");
hashSet.add("banana");
hashSet.add("orange");
System.out.println("HashSet: " + hashSet); // LinkedHashSet示例
Set<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("apple");
linkedHashSet.add("banana");
linkedHashSet.add("orange");
System.out.println("LinkedHashSet: " + linkedHashSet); // TreeSet示例
Set<String> treeSet = new TreeSet<>();
treeSet.add("apple");
treeSet.add("banana");
treeSet.add("orange");
System.out.println("TreeSet: " + treeSet);
}
}

在这个示例中,HashSet显示无序集合,LinkedHashSet保留插入顺序,而TreeSet按自然顺序(字典顺序)排序。

总结

  • Set接口用于存储不重复的元素。
  • 主要实现类有HashSetLinkedHashSetTreeSet,它们分别在性能和排序上有所不同。
  • 通过常用的方法如addremovecontainssize等可以对集合进行基本操作。

通过这些方法和示例,可以帮助你更好地理解和使用Java中的Set集合。

在Java集合框架中,`Set`接口是一个重要的接口,它表示一个不包含重复元素的集合。常见的`Set`实现类有`HashSet`、`LinkedHashSet`和`TreeSet`。下面是关于`Set`接口的一些基本用法和方法介绍:的更多相关文章

  1. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  2. 第49节:Java集合框架中底层文档的List与Set

    Java集合框架中的List与Set // 简书作者:达叔小生 Collection -> Set 无序不重复 -> 无序HashSet,需要排序TreeSet -> List 有序 ...

  3. Java集合框架中底层文档的List与Set

    Java集合框架中的List与Set // 简书作者:达叔小生 Collection -> Set 无序不重复 -> 无序HashSet,需要排序TreeSet -> List 有序 ...

  4. Java集合框架中的快速失败(fail—fast)机制

      fail-fast机制,即快速失败机制,是java集合框架中的一种错误检测机制.多线程下用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除),则会抛出Concurre ...

  5. 从n个元素中选择k个的所有组合(包含重复元素)

    LeetCode:Combinations这篇博客中给出了不包含重复元素求组合的5种解法.我们在这些解法的基础上修改以支持包含重复元素的情况.对于这种情况,首先肯定要对数组排序,以下不再强调 修改算法 ...

  6. JS 验证数组中是否包含重复元素

    验证JS中是否包含重复元素,有重复返回true:否则返回false 方案一. function isRepeat(data) { var hash = {}; for (var i in data) ...

  7. Java集合框架中Map接口的使用

    在我们常用的Java集合框架接口中,除了前面说过的Collection接口以及他的根接口List接口和Set接口的使用,Map接口也是一个经常使用的接口,和Collection接口不同,Map接口并不 ...

  8. Java集合框架中List接口的简单使用

    Java集合框架可以简单的理解为一种放置对象的容器,和数学中的集合概念类似,Java中的集合可以存放一系列对象的引用,也可以看做是数组的提升,Java集合类是一种工具类,只有相同类型的对象引用才可以放 ...

  9. Java 之集合框架 中(10)

    Map和HashMap Map接口: Map 提供了一种映射关系,其中的元素是以键值对(Key-Value)的形式 存储的,能够实现根据Key快速查找value Map中的键值对以Entry类型的对象 ...

  10. Java集合框架中的元素

    之前有一篇笔记,讲的是集合和泛型,这几天看Java集合中几个接口的文档,思绪非常混乱,直到看到Oracle的“The Collections Framwork”的页面,条理才清晰些,现在进行整理. 一 ...

随机推荐

  1. 按部就班--从零开始建设k8s监控(二)

    前言 书接上文,prometheus已经安装好了,并且能够对k8s的整体状态进行监控,但是我们还需要更多 环境准备 组件 版本 操作系统 Ubuntu 22.04.4 LTS docker 24.0. ...

  2. SHAPEIT算法简介

    本文是基于SHAPIT2和SHAPEIT4的,先介绍SHAPEIT2的算法原理,然后简单介绍了一下SHAPEIT4更新的部分.文中介绍主要集中在算法部分,比较简介,具体内容请看参考文献. [SHAPE ...

  3. Solution Set -「LOCAL」冲刺省选 Round XXVIII

    \(\mathscr{Summary}\)   A 题显然是图论模型嘛--但是卡得太久了,B 题 C 题都不好骗,裂开 qwq.   感觉时间安排上不尽合理,如果 B C 简单一点我这个就要挂打分了. ...

  4. CDS标准视图:银行对账单抬头 I_BankStatement

    视图名称:银行对账单抬头 I_BankStatement 视图类型:基础 视图代码: 点击查看代码 事务代码:FF67/ 视图结构: 字段名称 技术名称 短代码 BANKSTATEMENTSHORTI ...

  5. uwp 图像处理例子

    async void test() { Color replaceBlack = Color.FromArgb(224,233,55,6); Color replaceWhite = Color.Fr ...

  6. 史上最强Dubbo面试28题答案详解

    1.Dubbo是什么? Dubbo 是一个分布式.高性能.透明化的 RPC 服务框架,提供服务自动注册.自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成. RPC 指的是远程调用协议, ...

  7. JavaScript操作addEventListener监听触发事件

    JavaScript 的 addEventListener 方法允许你为指定的 HTML 元素添加事件监听器.以下是一些常见的事件类型,可以使用 addEventListener 来监听它们: 1,点 ...

  8. 隐私集合求交(PSI)-多方

    本文主要讲解一个多方的PSI协议,文章转载:隐私计算关键技术:多方隐私集合求交(PSI)从原理到实现以及多方隐私求交--基于OPPRF的MULTI-PARTY PSI:原论文:Practical Mu ...

  9. SpringBoot启动源码分析

  10. Fanatastic pg walkthrough 10 Easy

    nmap 发现9090 22 和3000端口 发现漏洞 但是不知道还能读到哪些敏感文件 hacktricks 看看 https://book.hacktricks.xyz/network-servic ...