首页 > 其他分享 >Set集合

Set集合

时间:2024-03-30 16:05:08浏览次数:16  
标签:Set HashSet int 元素 list 集合

1、set的定义

Set,不允许出现重复元素,并且无序的集合,主要有HashSet实现类

在判断重复元素的时候,Set集合会调用HashCode()和equal()方法来实现。

注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素

用于存储(存入无序和取出的顺序不一定相同)元素,值不能重复

特点:

  • 可以用来去重
  • 元素无序

2、HashSet类

HashSet类位于java.util包

  • HashSet实现了Set接口
  • Hash无序,即不会记录插入的顺序
  • HashSet一个不允许有重复元素的集合

语法格式:HashSet对象

Set<类型> set = new HashSet<>();

HashSet类常用方法

  • add(Object obj)方法:用于向Set集合中添加元素,添加成功返回true,否则返回false
  • size()方法:返回Set集合中的元素个数
  • remove(Object obj)方法:删除Set集合中的元素,删除成功返回true,否则返回false
  • contains()方法:如果Set不包含元素,则返回true,否则返回false
  • clear()方法:移除此Set中的所有元素

例题

https://www.lanqiao.cn/problems/539/learning/

        明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N<=100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查,请你协助明明完成“去重”与“排序”的工作。

输入描述:第一行为1个正整数,表示所生成的随机数的个数:N

                  第二行有N个用空格隔开的正整数,为所产生的随机数。

输出描述:10                                                                               8

                   20 40 32 67 40 20 89 300 400 15                             15 20 32 40 67 89 300 400

import java.util.*;

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int []a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        Set<Integer> set = new HashSet<>();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            if(!set.contains(a[i])){
                set.add(a[i]);
                list.add(a[i]);
            }else{
                continue;
            }
        }
        Collections.sort(list);
        System.out.println(list.size());
        for (int x:list){
            System.out.print(x+" ");
        }
    }

标签:Set,HashSet,int,元素,list,集合
From: https://blog.csdn.net/m0_74343360/article/details/137156619

相关文章

  • Babylon 如何使用AssetsManager(),导入多个模型
    AssetsManager是Babylon.js资产管理工具,可以加载多个模型或者纹理,并且在任务完成时提供回调函数。例如://创建一个AssetsManager实例constassetsManager=newBABYLON.AssetsManager(scene);//添加纹理加载任务consttextureTask=assetsManager.addTexture......
  • clean maven工程报错: Cannot find JRE '1.8 (1)'. You can specify JRE to run maven
    在双击Maven的clean时,报错:CannotfindJRE'1.8(1)'.YoucanspecifyJREtorunmavengoalsinSettings原因可能是自己之前下载的是JDK17,并且IDEA认为该JDK为默认JDK,而我的Maven项目设置使用的是JDK8,因此报错。解决方案如下:点击File-settingBuild,Execution,Deploy......
  • 转载:记录一下python setDaemon相关
    前言使用Python都不会错过线程这个知识,但是每次谈到线程,大家都下意识说GIL全局锁,但其实除了这个老生常谈的话题,还有很多有价值的东西可以探索的,譬如:setDaemon()。线程的使用与存在的问题我们会写这样的代码来启动多线程:importtimeimportthreadingdeftest():......
  • python 列表、元组、字典、集合的区别
    目录列表(List)元组(Tuple)字典(Dictionary)集合(Set)列表(List)有序:列表中的元素是有序的,可以通过索引访问。可变:你可以修改列表,比如添加、删除或改变元素。可重复:列表可以包含重复的元素。语法:使用方括号 [] 定义,元素用逗号分隔。应用场景:当你有一个元素......
  • set/ multiset 容器
    set/multiset容器1.1set基本概念简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素1.2set构造和赋值功能描述:创建set容器以及赋值构......
  • Map集合的几种常见遍历方式
    keySet()for(Stringkey:map.keySet()){System.out.println(key);}values()for(Stringvalue:map.values()){System.out.println(value);}entrySet()for(Map.Entry<String,String>entry:map.entrySet()){Stringk=entry.getKey......
  • Uncaught (in promise) DOMException: Failed to execute 'setRequestHeader' on 'XML
    根据错误提示"Uncaught(inpromise)DOMException:Failedtoexecute'setRequestHeader'on'XMLHttpRequest':Theobject'sstatemustbeOPENED.",你遇到了一个错误,该错误表明在调用setRequestHeader方法时,XMLHttpRequest对象的状态必须是已打开(OPENED)的状态。解决此问......
  • Java中有哪些容器(集合类)?
    Java中的集合类主要由Collection和Map这两个接口派生而出,其中Collection接口又派生出三个子接口,分别是Set、List、Queue。所有的Java集合类,都是Set、List、Queue、Map这四个接口的实现类,这四个接口将集合分成了四大类,其中Set代表无序的,元素不可重复的集合;List代表有序的......
  • Android 11.0 系统Settings横屏状态下wifi扫码不能识别功能修复
    1.前言在11.0的系统rom产品定制化开发过程中,在对于wifi扫描二维码的时候,可以看到相关的wifi信息,在竖屏的情况下不会有什么问题,但是如何在系统settings横屏的情况下扫描wifi的二维码的时候,发现识别不了,接下来就来分析下相关的wifi扫描相关流程,看如何实现相关功能2.系统Sett......
  • 【容器源码篇】Set容器(HashSet,LinkedHashSet,TreeSet的特点)
    文章目录⭐容器继承关系......