博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对集合的理解
阅读量:5805 次
发布时间:2019-06-18

本文共 583 字,大约阅读时间需要 1 分钟。

hot3.png

开端

看到有人说,Set都是无序的,但是我之前有看到过treeSet是有序的,有好奇心,so~敲代码 查百度。

TreeSet

  1. 循环int类型 1~20,毫无疑问,打印出来是有序的。
  2. 大兄弟还是不相信,他也不敲。真是服了。他肯定认为我转牛角尖(程序员这点素质还是要有吧?!)
  3. 于是我换了种思路,add时转为String类型,倒序插入,结果真的无序

小结:treeMap的构造方法里是TreeMap,treeMap底层是红黑树,自有一套默认升序的排序方法compare (可重写)。所以可以说treeSet存储无序,内部有序。其实通过思想碰撞还是学会了很多,要动手敲,看源码。

HashSet

  1. 既然TreeSet 打印时都有序了,那么HashSet呢?于是我也试了一波,是有序的
  2. 再试试倒序,果然 还是升序显示,想想就理解了,HashSet的构造函数是HashMap,而HashMap的存储算法是Hash算法,就是把数据通过计算数组下标丢到数组里,那么都是数字并且连续就保证 key的hashcode与length-1的位运算连续。就保证 数据升序的存在数组里。

LinkedList

1、list的子类还是接口实现类? 2、了解底层原理实现,数据结构是啥 3、链表。。

转载于:https://my.oschina.net/xlpapapa/blog/3053432

你可能感兴趣的文章
Linux基础命令---rmdir
查看>>
优秀程序员共有的7种优秀编程习惯
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
开发者论坛一周精粹(第五十五期) 全站HTTPS之OSS教程 一次可以备案几个网站?...
查看>>
(干货)Linux学习资源推荐
查看>>
蓝图(Blueprint)详解
查看>>
Spark之SQL解析(源码阅读十)
查看>>
Android图片添加水印图片并把图片保存到文件存储
查看>>
C#字符串的不变性
查看>>
前端路由简介以及vue-router实现原理
查看>>
比特币系统采用的公钥密码学方案和ECDSA签名算法介绍——第二部分:代码实现(C语言)...
查看>>
分享15款很实用的 Sass 和 Compass 工具
查看>>
AMD优势: 与众不同 选择丰富
查看>>
玩转高性能超猛防火墙nf-HiPAC
查看>>
简单按日期查询mysql某张表中的记录数
查看>>
自动化部署之jenkins发布PHP项目
查看>>
C/C++编程可用的Linux自带工具
查看>>
如何判断webview是不是滑到底部
查看>>