开端
看到有人说,Set都是无序的,但是我之前有看到过treeSet是有序的,有好奇心,so~敲代码 查百度。
TreeSet
- 循环int类型 1~20,毫无疑问,打印出来是有序的。
- 大兄弟还是不相信,他也不敲。真是服了。他肯定认为我转牛角尖(程序员这点素质还是要有吧?!)
- 于是我换了种思路,add时转为String类型,倒序插入,结果真的无序
小结:treeMap的构造方法里是TreeMap,treeMap底层是红黑树,自有一套默认升序的排序方法compare (可重写)。所以可以说treeSet存储无序,内部有序。其实通过思想碰撞还是学会了很多,要动手敲,看源码。
HashSet
- 既然TreeSet 打印时都有序了,那么HashSet呢?于是我也试了一波,是有序的
- 再试试倒序,果然 还是升序显示,想想就理解了,HashSet的构造函数是HashMap,而HashMap的存储算法是Hash算法,就是把数据通过计算数组下标丢到数组里,那么都是数字并且连续就保证 key的hashcode与length-1的位运算连续。就保证 数据升序的存在数组里。
LinkedList
1、list的子类还是接口实现类? 2、了解底层原理实现,数据结构是啥 3、链表。。