
java集合
文章平均质量分 77
java集合
进朱者赤
阿里非典型程序员一枚:微信公众号同名,记录平平无奇程序员在大厂的打怪升级之路。
Java、大数据、数据结构算法
展开
-
Java性能优化(三):Java基础-HashMap的设计与优化
HashMap核心特性数据结构:HashMap采用哈希表数据结构来存储键值对,利用哈希函数和哈希表快速定位元素位置,提供高效的键值对查询。参数设置初始容量:HashMap允许用户根据使用场景设定初始容量,以优化性能。在预知数据量时,可以通过计算(初始容量=预知数据量/加载因子)来设定合适的初始容量,以减少扩容操作,提高效率。加载因子:加载因子定义了哈希表何时进行扩容的阈值。加载因子较小时,哈希表会更早地进行扩容,减少哈希冲突;加载因子较大时,会提高内存利用率但可能增加哈希冲突。原创 2024-05-05 21:31:34 · 1413 阅读 · 3 评论 -
Java性能优化(一):Java基础-ArrayList和LinkedList
前面我们已经从源码的实现角度深入了解了ArrayList和LinkedList的实现原理以及各自的特点。如果你能充分理解这些内容,很多实际应用中的相关性能问题也就迎刃而解了。就像如果现在还有人跟你说,“ArrayList和LinkedList在新增、删除元素时,LinkedList的效率要高于ArrayList,而在遍历的时候,ArrayList的效率要高于LinkedList”,你还会表示赞同吗?现在我们不妨通过几组测试来验证一下。原创 2024-05-03 21:31:40 · 1218 阅读 · 0 评论 -
Guava库:强大的java工具类库
Google Guava库是由Google开发的一个Java开源库,它提供了许多实用的工具类和方法,旨在帮助开发者编写更加简洁、高效和可维护的代码。Guava库的主要目的是简化Java编程中的一些常见任务,如集合操作、缓存、函数式编程支持等,同时提供了一系列性能优化和设计模式的最佳实践。原创 2020-03-11 22:00:56 · 11805 阅读 · 3 评论 -
Map遍历的方式
Map在Java的几种主要的遍历方式,每种方式都有其特定的用途和优势。原创 2019-11-19 22:56:41 · 160 阅读 · 1 评论 -
集合框架里List、Set、Map中添加元素(add,put)方法返回值问题
基本返回值都是true(因为通过源码我们可以看到它通过是否修改原有集合来返回true或者false,而多数情况下,List内容可以重复,所以相当于它的内容始终在改变,所以返回为true)在Map中添加元素使用put方法,在返回值问题上,因为Map中是以键值对存在,因此当一个键值是第一次被添加时返回值为null,否则返回为上一次添加的value。因为Set分支的特点是无序且不可重复,因此通过add方法添加相同的值时,第一次返回为true,后面再加相同元素的话就会返回false,因为元素重复。原创 2019-06-19 20:52:27 · 3310 阅读 · 1 评论 -
Java技术之AQS详解(AbstractQueuedSynchronizer)
但共享模式下,多个线程是可以同时执行的,现在因为老二的资源需求量大,而把后面量小的老三和老四也都卡住了。正常来说,tryRelease()都会成功的,因为这是独占模式,该线程来释放资源,那么它肯定已经拿到独占资源了,直接减掉相应量的资源即可(state-=arg),也不需要考虑线程安全的问题。跟独占模式下的release()相似,但有一点稍微需要注意:独占模式下的tryRelease()在完全释放掉资源(state=0)后,才会返回true去唤醒其他线程,这主要是基于独占下可重入的考量;原创 2019-09-04 00:26:17 · 212 阅读 · 1 评论 -
【HashMap】深入理解HashMap+ConcurrentHashMap的扩容策略
理解HashMap和ConcurrentHashMap的重点在于: (1)理解HashMap的数据结构的设计和实现思路 (2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路 前面的文章已经介绍过Map结构的底层实现,这里我们重点放在其扩容方法, 这里分别对JDK7和JDK8版本的HashMap+ConcurrentHashMap来分析: 这个版本的HashMap数据结构还是数组+链表的方式,扩容方法如下: 上面的这段代码不并不难理解,对于扩原创 2019-09-01 23:43:23 · 601 阅读 · 1 评论 -
HashMap的时间复杂度分析(JDK8)
虽然HashMap的理论时间复杂度是 O(1),但在实际应用中,你需要考虑到多种因素,以确保它的高效运行。通过遵循最佳实践和深入了解HashMap的内部机制,你可以充分利用这一强大的数据结构,以实现高性能的应用程序。原创 2019-12-17 14:46:36 · 8760 阅读 · 1 评论 -
ArrayList和LinkedList
ArrayList和LinkedList都是Java集合框架中的列表实现,但它们在底层数据结构、性能特点和适用场景方面有所不同。原创 2019-05-08 09:31:54 · 209 阅读 · 1 评论 -
Connection接口总结
常见的实现类包括LinkedList和ArrayDeque。1.依赖两个方法:hashCode()和equals()2.由哈希表保证元素唯一 TreeSet。优点: 底层数据结构是数组,查询快,增删慢。优点: 底层数据结构是数组,查询快,增删慢。优点: 底层数据结构是链表,查询慢,增删快。底层数据结构是红黑树。底层数据结构是哈希表。缺点: 线程不安全,效率高。缺点: 线程不安全,效率高。缺点: 线程安全,效率低。如何来保证元素唯一性?1.由链表保证元素有序。(FIFO插入有序,唯一)原创 2019-08-27 11:19:48 · 1396 阅读 · 2 评论