目录

set集合的特点

set集合的遍历方式

HashSet哈希表储存,重复元素储存底层探究

TreeSet(自然排序,比较器排序)


 set集合的特点

延续上篇list集合,set集合与list集合为同级,在set集合中包括一个接口SortedSet和一个实现类HashSet。常用的实现类为HashSet与TreSet.

set集合的特点与list集合正好相反

①无序

②不可重复

但set集合中的无序并不是绝对意义上的排序,而是以哈希表为基准的排序(下面有解释)。

set集合的遍历方式

            在list集合中有三种便利方式,而在set集合中只有两种遍历方式,正因为set集合为无序排序所以只能用fore遍历和iterator(迭代器)遍历。

for (Object object : set) {System.out.println(object);}System.out.println("---------");Iterator iterator=set.iterator();while (iterator.hasNext()) {Object next= iterator.next();System.out.println(next);}

HashSet哈希表储存,重复元素储存底层探究

set集合去重原理:hashset底层数据结构是哈希表有限会调用hashset方法对比地址然后调用equals方法对比值

@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((sex == null) ? 0 : sex.hashCode());result = prime * result + ((sid == null) ? 0 : sid.hashCode());result = prime * result + ((sname == null) ? 0 : sname.hashCode());return result;}

    TreeSet(自然排序,比较器排序)

自然排序

      TreSet自然排序首先要实现

Serializable,Comparable<Student>

两个接口然后重写下面的方法;

 //比较重写@Overridepublic int compareTo(Student o) {//比较的结果有 1.>0 2.<0 3.=0return this.getSname().hashCode()-o.getSname().hashCode();}

比较器排序

创建比较类,实现

Comparable<Student2>

public class NameComparator implements Comparator<Student2> {//String以Ascll码进行比较,返回差值@Overridepublic int compare(Student2 arg0, Student2 arg1) {if(arg0.getSid()-arg1.getSid()>0) {return 100;}else if(arg0.getSid()-arg1.getSid()<0){return -100;}else {return 0;}}

set集合关系及特点相关推荐

  1. Python集合关系解读:Python语言中都有哪些集合关系?

    数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A.B是两个集合,集合之间的关系如下. (1)交集是指属于集合A且属于集合B的元素所组成的集合. (2)并集是指集合A和集合B的元素合并在 ...

  2. 离散数学之集合关系(赋代码实现版)

    前言 最近在学习离散数学,在这里给大家总结一下离散数学的集合关系吧 自反性 对称性 传递性 并且我用代码给大家实现了一下,但是代码测试的并不多,不晓得有没有bug,大家若留了这方面的作业,可拿去一测

  3. 很全的路由器默认初始密码集合.txt_UpSet——集合关系可视化神器

    学习更多生信小技巧,点上方蓝字关注我们 分析背景 01 提到集合的可视化,大家第一时间想到的是用Venn图来展示,在前期的推文中,小编也给大家分享了venn图的绘制方法.然而,值得一提的是,小编分享的 ...

  4. 史上最全Java集合关系图

  5. 判断集合关系(自反,反自反,对称,反对称,传递)

    具体代码如下 1 #include<iostream> 2 using namespace std; 3 4 void Input(int a[25][2],int s) 5 { 6 in ...

  6. Python中怎样改变集合之间的关系?

    Python中怎样改变集合之间的关系?数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A,B是两个集合,集合关系的操作介绍如下: 交集是指属于集合A且属于集合B的元素所组成的集合, 并集 ...

  7. 离散数学知识点总结(10)“关系” 知识的总结 <1>:关系的基础概念 —— 有序 n 元组,集合的笛卡尔积,集合的关系(二元关系)的定义,关系的集合运算, 关系的基本性质

    文章目录 有序 n 元组和集合的笛卡尔积 序偶关系 有序二元组 序偶相等 有序三元组 有序n元组 有序 n 元组相等 集合的笛卡尔积 集合笛卡尔积的性质 集合的二元关系及其表示方法 相关 关系的定义 ...

  8. 魔术里的集合、映射和关系(七)——情怀之作《连环预言》的魔术魅力

    在前面的作品中,我们用了3篇的篇幅来讲解集合,映射和关系的这些数学概念:4,5两篇进入了魔术部分,给大家分享了一个优雅的作品<4 Kings 折纸>:上一篇就<连环预言>这个充 ...

  9. 离散数学之三 集合与关系

    目录 一.集合的概念与表示 1.集合的概念 2.集合元素的性质 3.集合的描述方法 1. 列举法 3. 叙述法 3. 文氏图 4.集合的关系 5.特殊的集合 1. 空集 2. 全集 3. 幂集 二.集 ...

最新文章

  1. pytorch中调整学习率的lr_scheduler机制
  2. 电信 IPRAN 设备组网方案_国内首家5G核心网电信设备进网许可证;电信5G网络增强方案获认可;美国最大规模毫米波拍卖...
  3. 漫谈强化学习中的引导搜索策略
  4. [二]RabbitMQ-客户端源码之AMQConnection
  5. android中解析后台返回的json字符串
  6. bzoj3389:[Usaco2004 Dec]Cleaning Shifts安排值班
  7. camera android 版本,Camera for Android
  8. 基于PHP的个人博客网站系统
  9. drawboard pdf拆分文件_Drawboard PDF 免费版
  10. ppt中的流程图怎么整体移动_教你两招,把复杂的流程图PPT排版简单化
  11. iOS 图片遮罩动画,图片逐渐显示
  12. VIVO NEX3高层预热,差0.4到100%屏占比,这得让多少人心动
  13. 贺泓胜:2.24黄金今日走势分析操作建议,黄金原油解套指导
  14. 《少年pi》:每个人心中都有一只孟…
  15. Vue中qs插件的使用
  16. 985的计算机专业硕士就业如何,985高校硕士就业率排名出炉!西安交大第一
  17. SprinBoot+Jpa实现1024社区系统的最新职位推荐和最热职位推荐
  18. 060201面积-定积分在几何学上的应用-定积分的应用
  19. JavaWeb学习案例——学生管理系统
  20. 【高分】ubuntu 、打开USB摄像头、Linux、USB摄像头驱动

热门文章

  1. jdk几个好用的性能调优工具
  2. 完成端口 完成端口 完成端口 还是完成端口
  3. nodejs+vue 智慧餐厅点餐餐桌预订系统
  4. 岁月温柔-7 妈妈的烦恼 蛋白粉涨价
  5. 汇编语言实现简单的人机问答
  6. 复杂美区块链溯源系统架构
  7. Android 2018优秀开源框架整理收藏
  8. oracle创建索引指定用户,循序渐进学Oracle之索引、权限、角色
  9. js数据类型强制转换--转换为String
  10. 【jQuery】基础知识梳理笔记