Java集合
文章平均质量分 94
Java集合
BoldExplorer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java集合(七)- TreeSet & TreeMap
之所以把TreeSet和TreeMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说TreeSet里面有一个TreeMap(适配器模式)**。因此本文将重点分析TreeMap。JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。TreeMap。原创 2024-12-11 23:42:59 · 764 阅读 · 0 评论 -
Java集合(六)- LinkedHashSet&Map
如果你已看过前面关于HashSet和HashMap,以及TreeSet和TreeMap的讲解,一定能够想到本文将要讲解的和其实也是一回事。和在Java里也有着相同的实现,前者仅仅是对后者做了一层包装,也就是说LinkedHashSet里面有一个LinkedHashMap(适配器模式)。因此本文将重点分析。实现了Map接口,即允许放入key为null的元素,也允许插入value为null的元素。从名字上可以看出该容器是和HashMap的混合体,也就是说它同时满足。原创 2024-12-10 23:00:57 · 1025 阅读 · 0 评论 -
Java集合(五)- HashSet & HashMap
之所以把HashSet和HashMap放在一起讲解,是因为二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。HashMap实现了Map接口,即允许放入key为null的元素,也允许插入value为null的元素;除该类未实现同步外,其余跟Hashtable大致相同;跟TreeMap。原创 2024-12-10 22:56:43 · 826 阅读 · 0 评论 -
Java集合(四)- PriorityQueue
前面以JavaArrayDeque为例讲解了Stack和Queue,其实还有一种特殊的队列叫做,即优先队列。优先队列的作用是能保证每次取出的元素都是队列中权值最小的(Java的优先队列每次取最小元素,C++的优先队列每次取最大元素)。这里牵涉到了大小关系,元素大小的评判可以通过元素本身的自然顺序(),也可以通过构造时传入的比较器Comparator,类似于C++的仿函数)。Java中实现了Queue接口,不允许放入null元素;其通过堆实现,具体说是通过完全二叉树()实现的小顶堆。原创 2024-12-08 15:49:35 · 735 阅读 · 0 评论 -
Java集合(三)- Stack & Queue
Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然Queue只是一个接口,当需要使用队列时也就首选ArrayDeque了(次选是LinkedList。原创 2024-12-08 15:40:06 · 751 阅读 · 0 评论 -
Java集合(一)- ArrayList
数组进行扩容时,会将老数组中的元素重新拷贝一份到新的数组中,每次数组容量的增长大约是其原容量的1.5倍。这种操作的代价是很高的,因此在实际使用时,我们应该尽量避免数组容量的扩张。当我们可预知要保存的元素的多少时,要在构造ArrayList实例时,就指定其容量,以避免数组扩容的发生。每当向数组中添加元素时,都要去检查添加后元素的个数是否会超出当前数组的长度,如果超出,数组将会进行扩容,以满足添加数据的需求。如果从指定位置插入,也会存在移动元素的情况。的时间复杂度不仅跟插入元素的多少有关,也跟插入的位置相关。原创 2024-12-05 22:49:28 · 791 阅读 · 0 评论
分享