【数据结构】Set的使用

文章目录

    • 一、Set的使用
      • 1.Set的常用方法:
            • 1.boolean add(E e)
            • 2.void clear()
            • 3.boolean contains(Object o)
            • 4.boolean remove(Object o)
            • 5.int size()
            • 6.boolean isEmpty()
            • 7.Object[] toArray()
            • 8.boolean containsAll(Collection<?> c)
            • 9.boolean addAll(Collection<? extends E> c)
            • 10.Iterator<E> iterator()
      • 2.Set的注意事项:



一、Set的使用

  • 和Map不同的是,Set继承于Collection。Set中只存储了Key

1.Set的常用方法:

1.boolean add(E e)
  • 添加元素,如果存在则无法添加。
        Set<String>set = new TreeSet<>();set.add("Hello");set.add("World");boolean happy = set.add("Happy");boolean hello = set.add("Hello");System.out.println(set);//[Happy, Hello, World]System.out.println(happy);//trueSystem.out.println(hello);//false
2.void clear()
   set.clear();
  • 清空集合
3.boolean contains(Object o)
        System.out.println(set.contains("Hello"));//trueSystem.out.println(set.contains("hello"));//false
  • 判断元素在集合中是否存在
4.boolean remove(Object o)
        System.out.println(set.remove("Hello"));//trueSystem.out.println(set.remove("hello"));//false
  • 删除集合中的元素,返回值为布尔类型
5.int size()
      System.out.println(set.size());//2
  • 返回集合的大小
6.boolean isEmpty()
       System.out.println(set.isEmpty());//false
  • 判断集合是否为空
7.Object[] toArray()
        System.out.println(set);//[Happy, World]System.out.println(set.toArray());//[Ljava.lang.Object;@4554617c
  • 将Set中的元素转化为数组返回
8.boolean containsAll(Collection<?> c)
        Deque<String> deque = new ArrayDeque<>();deque.add("Happy");deque.add("World");System.out.println(set.containsAll(deque));//true
  • 判断集合c中的元素是否在set中全部存在,是返回true,否则返回 false

    只要继承了Collection的类都可以比较

9.boolean addAll(Collection<? extends E> c)
        Deque<String> deque = new ArrayDeque<>();deque.add("Happy");deque.add("World");deque.add("adddadd");System.out.println(set.containsAll(deque));//trueSystem.out.println(set.addAll(deque));//trueSystem.out.println(set);//[Happy, World, adddadd]
  • 将集合c中的元素添加到set中,可以达到去重的效果
10.Iterator iterator()
  • 返回迭代器
        Iterator<String> iterator = set.iterator();while (iterator.hasNext()){System.out.println(iterator.next());}//Happy//World

如果有下一个,打印下一个

2.Set的注意事项:

1.Set是继承自Collection的一个借口类

2.Set中只存有Key,且Key唯一.Key不能修改,修改要先删除,再重新插入

3.TreeSet的底层是用Map实现的

在这里插入图片描述

new 的TreeSet,实际上new的是一个TreeMap对象。这个TreeMap的Value都是一个Object对象

TreeSet不能插入为null的Key,HashSet可以,因为TreeSet是需要比较的

4.Set的最大功能是对集合进行去重。

Key不能重复且唯一

5.Set的常用接口的TreeSet和HashSet,

LinkedHashSet在HashSet的基础上,维护了双向链表,来记录元素的插入顺序

点击移步博客主页,欢迎光临~

偷cyk的图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/536087.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言函数—关于静态库

具体的函数声明和定义请参考上一篇文章 如果我们成为了库的开发者&#xff0c;要卖给别人C语言库&#xff0c;该怎么办呢&#xff1f; A不会写减法&#xff0c;想找你买一个函数 但是&#xff0c;他给的太少了&#xff0c;你不想把源码卖给他 那怎么办呢&#xff1f; 首先&…

Android SDK 开发 云托管

开发SDK,拒绝重复造轮子。 本文陈述两种SDK开发方式&#xff0c;第一种AAR方式&#xff1b;第二种远程依赖方式。 具体步骤分为&#xff1a; 一、如何开发SDK&#xff1f; 二、如何打包AAR&#xff1f; 三、如何打包AAR&#xff1f; 四、如何进行SDK远程托管&#xff1f; 五、如…

【JavaScript】数据类型转换 ① ( 隐式转换 和 显式转换 | 常用的 数据类型转换 | 转为 字符串类型 方法 )

文章目录 一、 JavaScript 数据类型转换1、数据类型转换2、隐式转换 和 显式转换3、常用的 数据类型转换4、转为 字符串类型 方法 一、 JavaScript 数据类型转换 1、数据类型转换 在 网页端 使用 HTML 表单 和 浏览器输入框 prompt 函数 , 接收的数据 是 字符串类型 变量 , 该…

java拷贝数组

package com.mohuanan.exercise;public class Exercise {public static void main(String[] args) {int[] arr {1, 2, 3, 4, 5, 6, 7, 8, 8}; //格式化快捷键 CTRL 加 Alt 加 L键// F1截图 F3贴图//调用 copyOfRangeint[] ints copyOfRange(arr, 3, 7);for (int i 0; i &l…

【C++】string类初步介绍

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 为什么学习string类1.1 C语言中的字符串1.2 推荐学习网站 2. 标准库中的string类2.1 string类2.2 string类的常用接口说明2.2.1 constructor2.2.2 遍历string2.2.2.1 下标加[]遍历2.2.2.2 迭代器&#xff08;itera…

前端跨页面通信的几种方式---同源

参考链接 1、LocalStorage:当 LocalStorage 变化时&#xff0c;会触发storage事件。利用这个特性&#xff0c;我们可以在发送消息时&#xff0c;把消息写入到某个 LocalStorage 中&#xff1b;然后在各个页面内&#xff0c;通过监听storage事件即可收到通知。 2、BroadCast C…

快速排序 刷题笔记

思路 分治双指针 在每个区间选定一个基准目标 两个指针从数组的两边向中间推进 使用 while循环判断 do {i;}while(q[i]<x); do{j--;}while(q[j]>x); 每次这样做完就会找到q[i]>x,,,,q[j]小于x 此时我们交换 q[i] ,q[j]于是小于x的数分到了小于x的一侧 大…

Java中 final、finally、finalize 有什么区别?

1、典型回答 final、finally、finalize 是 Java 中三个不同的关键字&#xff0c;它们除了长得像之外&#xff0c;其他的&#xff08;作用和含义&#xff09;完全不同。 它们三个的区别就好像&#xff1a;雷、雷锋、雷峰塔之间的区别。&#xff08;是三个完全不同的东西&#…

python实现卡普均值最小回路算法

如果给定一个含有环的有向图,要在这个图中找出所有的环并计算这些环的路径长度,然后除以环的边数,所得到的结果也就是环的平均值,这里也就是如何计算这个环的最小均值问题。 首先可以确定的是,如果图中均值最小的环的值是0,那么图中就不包含负环,由于是负环,那么所有边…

C库函数-getopt函数总结学习

1、简介 getopt函数是命令行参数解析函数 1、1命令行组成 Command name 程序文件名 operands 操作对象 option 选项 option argument 选项参数 getopt()函数将传递给mian()函数的argc,argv作为参数&#xff0c;同时接受字符串参数optstring – optstring是由选项Option字母组…

Linux系统目录结构详细介绍

目录 一、根目录&#xff08;/&#xff09; 二、/bin 三、/boot 四、/dev 1.设备文件类型&#xff1a; 2.常见设备文件&#xff1a; 五、/etc 六、/home 七、/root 八、/run 九、/sbin 十、 /tmp 十一、/usr 十二、/var Linux系统目录结构是一种层次化的文件系…

目标跟踪SORT算法原理浅析

SORT算法 Simple Online and Realtime Tracking(SORT)是一个非常简单、有效、实用的多目标跟踪算法。在SORT中&#xff0c;仅仅通过IOU来进行匹配虽然速度非常快&#xff0c;但是ID switch依然非常严重。 SORT最大特点是基于Faster RCNN的目标检测方法&#xff0c;并利用卡尔…