常用实现类

  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. ABAP配置:OY01 定义国家/地区

    配置:OY01 定义国家/地区 事务代码:OY01 配置路径: SPRO-ABAP平台-常规设置-设置国家-定义国家/地区 配置路径截图: 配置描述: 国家是SAP里面一个非常重要的概念,SAP国家概 ...

  2. selenium学习-常用方法

    id_#当前元素的ID  tag_name#获取元素标签名的属性  text#获取该元素的文本.  click()#单击(点击)元素  submit()#提交表单  clear()#清除一个文本输入元 ...

  3. Pycharm:鼠标滚动控制字体大小

    Pycharm字体放大的设置 1.File -> setting -> Keymap ->在搜寻框中输入:increase -> Increase Font Size(双击) ...

  4. java注释转json插件开发实战

    目的 将java的代码注释转换为json格式,并写入文件 本文介绍了完整的开发流程及如何使用 运行环境 jdk1.8 maven3.x 设计思想 系统构思 编译完成的class里没有注释的,所以注释信 ...

  5. LeetCode 力扣 205. 同构字符串

    给定两个字符串 s 和 t ,判断它们是否是同构的. 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的. 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序.不同字 ...

  6. java中的ArrayBlockingQueue

    ArrayBlockingQueue ArrayBlockingQueue 是 Java 并发包 (java.util.concurrent) 中的一个线程安全的阻塞队列实现. 它基于数组实现,容量固 ...

  7. 在SOUI中将自定义配置信息写到布局文件中

    SOUI的布局XML文件保存布局必须的信息.特定场合中,用户可能会需要在布局中指定业务需要处理的属性. 比如启程输入法的皮肤.有的皮肤支持高分屏,有的皮肤不支持.对于这个场景,比较理想的方案是直接在皮 ...

  8. Rocksdb原理简介

    本文分享自天翼云开发者社区<Rocksdb原理简介>,作者:l****n Rocksdb作为当下nosql中性能的代表被各个存储组件(mysql.tikv.pmdk.bluestore)作 ...

  9. 浅谈基于SASE的安全云服务

    本文分享自天翼云开发者社区<浅谈基于SASE的安全云服务>,作者:姚****亮 SASE(secure access service edge安全访问服务边缘):是一种安全框架,结合了软件 ...

  10. mybatis之日志配置

    1.在mybatis-config.xml中配置 <!-- 指定 MyBatis 所用日志的具体实现,未指定时将自动查找. SLF4J | LOG4J | LOG4J2 | JDK_LOGGIN ...