【Set和HashSet】

1、Set

​ 概念:Set集合类似于一个瓶罐子,集合中的多个对象之间没有明显的顺序排列。

​ 特点如下:

  • ​ set集合不允许包含相同的元素,如果试图要把两个相同的元素加入到同一个Set集合中,则将添加失败;add方法返回false,且新元素不会被加入。【无序容器】

  • ​ 使用equals方法判断两个对象是否相同,不使用==运算符

  • ​ 最多包含一个Null元素

​ 常用:

​ 最常用的实现类有HashSet、LinkedHashSet和TreeSet;

​ TreeSet是一个有序的集合容器,它实现了SortedSet接口,根据compare()方法和compareTo()方法进行排序

2、HashSet:

​ 概念:HashSet顾名思义是通过hash算法存储集合元素的,依赖数据结构是哈希表,因而它具有良好存取和查找功能;HashSet是Set接口的实现类,多数情况下使用Set集合都是通过HashSet来实现的。

​ 特点如下:

  • ​ HashSet 集合中存储的元素(对象)是无序排列的,插入的元素(对象)是根据的是hashcode

  • ​ HashSet是线程不安全的(非同步的)

  • ​ HashSet允许为null,但仍不允许有重复的值

  • ​ HashSet实现了Serializable和cloneable两接口


3、一段插曲:

这里再来回顾以下Serializable接口:

​ Serializable接口,是一个对象序列化接口,一个Java类只有通过实现Serializable接口了它的对象才可以被序列化

什么是序列化呢??(emm这知识怎么学了总忘啊) 下面咱们再来回顾以下吧…

​ 序列化就是将对象的状态信息转换为可以存储或者传输的形式的过程(也可以说是把对象转换为字节序列的过程),比方说,把对象通过网络进行传输、将对象的状态信息持久化

通俗讲,在代码运行时,我们可看到有很多的对象,这些对象可以是一个、也可以是一类对象的集合,在这些对象数据中我们需要把一部分信息给保存下来,这时,有了序列化就可以把内存里的这些对象转换为一串串字节描述这个过程。(常见就是变成了文件

序列化能干嘛??(请往下看

set和hashset区别及用法相关推荐

  1. model.fit以及model.fit_generator区别及用法

    model.fit以及model.fit_generator区别及用法_猫爱吃鱼the的博客-CSDN博客

  2. HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类

    HashMap专题:HashMap的实现原理--链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时 ...

  3. js中!和!!的区别及用法

    js中!和!!的区别及用法 js中!的用法是比较灵活的,它除了做逻辑运算常常会用!做类型判断,可以用!与上对象来求得一个布尔值, 1.!可将变量转换成boolean类型,null.undefined和 ...

  4. Python中threading的join和setDaemon的区别及用法 例子

    Python中threading的join和setDaemon的区别及用法 Python多线程编程时,经常会用到join()和setDaemon()方法,今天特地研究了一下两者的区别. 1.join ...

  5. MySQL笔记10:engine=innodb和engine=myisam的区别和用法!

    MYSQL中engine=innodb和engine=myisam的区别和用法! 区别 1.myisam类型不支持事务处理等高级处理,而innodb类型支持. 2.myisam类型的表强调的是性能,其 ...

  6. calloc、malloc、realloc函数的区别及用法

    calloc.malloc.realloc函数的区别及用法! 三者都是分配内存,都是stdlib.h库里的函数,但是也存在一些差异. (1)malloc函数.其原型void *malloc(unsig ...

  7. 多线程:synchronize、volatile、Lock 的区别与用法

    Java多线程之内存可见性和原子性:Synchronized和Volatile的比较 在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型. (1)Java所有变量都存储在主内存中   ...

  8. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...

  9. HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别(转)

    HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别 文章来源:http://www.cnblogs.com/beatIteWeNerverGiveU ...

最新文章

  1. 2018/5/1-----1987年图灵奖PPT
  2. 华为android8适配进度,华为 荣耀 O版本(Android 8.0)适配进度公告
  3. 突发:ORA-12541:TNS:无监听程序 的调查解决方法(监听日志已满导致)
  4. SQL SERVER 2008 数据恢复错误的解决步骤
  5. [loj2087][NOI2016]国王饮水记
  6. 卷积神经网络——各种网络的简洁介绍和实现
  7. 关于resolve非泛型方法不能与类型实参一起使用
  8. 从键盘上录入两个整数,计算a的b次方的结果
  9. Event Loop、计时器、nextTick
  10. leetcode - 213. 打家劫舍 II
  11. LVS+Keepalive+Nginx实现负载均衡
  12. ORACEL使用脚本来修改表结构
  13. Centos7 安装teamviewer
  14. 4个睡眠中的“小动作”,暴露了你的身体状况
  15. stc单片机c语言程序头文件(stc12c5a60s2.h,STC12C5A60S2单片机头文件
  16. android+google+play,打开链接的google play商店在手机版android
  17. Unity Timeline 初识
  18. 使用Certbot为nginx配置免费的https证书
  19. 亚马逊广告CPC优化技巧 投放就有效
  20. ABM410-ASEMI贴片整流桥ABM410

热门文章

  1. PC屏幕颜色识别实现鼠标自动点击
  2. 【一起去北碚玩吧】->【我们从北碚回来了】
  3. MS PROJECT 下载
  4. 现代版的———项链 :(  转
  5. 分数统计设计java程序_(windows综合程序)设计一个学生平时成绩统计软件 最后的Java作业...
  6. 加减法、原码一位乘法、Booth算法、恢复余数法、加减交替法符号位及小结
  7. 熬夜整理Java面试笔试题,你还看不懂吗?
  8. python 三次根号_开3次方根(多次方根)的代码:二分法,python
  9. 自学Python之后如果不去公司上班,自己可以通过此技能挣什么钱?
  10. java实现美图秀秀的照片拼接功能(照片数量任意)