随笔分类 -  java集合

摘要:为了引出 ConcurrentSkipListMap,先来简单理解下什么是跳表。 对于单链表,即使链表是有序的,如果想要在其中查找某个数据,也只能从头到尾遍历链表,这样效率自然就会很低,跳表就不一样了。跳表是一种可以用来快速查找的数据结构,有点类似于平衡树。它们都可以对元素进行快速的查找。但一个重要 阅读全文
posted @ 2022-03-10 09:36 高压锅里的大萝卜 阅读(339) 评论(0) 推荐(0) 编辑
摘要:注意:该随笔内容完全引自http://wsmajunfeng.iteye.com/blog/1629354,写的很好,非常感谢,复制过来算是个积累,怕以后找不到。 一. 前言 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高 阅读全文
posted @ 2022-03-07 16:22 高压锅里的大萝卜 阅读(63) 评论(0) 推荐(0) 编辑
摘要:Collection<E>是Java集合框架中的基本接口; Collections是Java集合框架提供的一个工具类,其中包含了大量用于操作或返回集合的静态方法。 1) 排序(Sort)使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 阅读全文
posted @ 2022-03-04 15:03 高压锅里的大萝卜 阅读(173) 评论(0) 推荐(0) 编辑
摘要:package java.util; public interface Enumeration<E> { boolean hasMoreElements(); E nextElement(); } public interface Iterator<E> { boolean hasNext(); E 阅读全文
posted @ 2022-03-04 14:34 高压锅里的大萝卜 阅读(125) 评论(0) 推荐(0) 编辑
摘要:我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(迭代器)。使用迭代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。 但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以 阅读全文
posted @ 2022-03-04 14:30 高压锅里的大萝卜 阅读(47) 评论(0) 推荐(0) 编辑
摘要:HashSet是最常用的Set集合之一,可以保证元素的唯一性。 底层原理 HashSet底层完全就是在HashMap的基础上包了一层,只不过存储的时候value是默认存储了一个Object的静态常量,取的时候也是只返回key,所以看起来就像List一样。 构造方法 可以看到四个构造方法都是初始化一个 阅读全文
posted @ 2022-03-04 13:57 高压锅里的大萝卜 阅读(535) 评论(0) 推荐(0) 编辑
摘要:本文将用到Java内存模型的happens-before偏序关系(下文将简称为hb)以及ConcurrentHashMap的底层模型相关的知识。happens-before相关内容参见:JLS §17.4.5. Happens-before Order、深入理解Java内存模型以及Happens b 阅读全文
posted @ 2022-03-04 13:20 高压锅里的大萝卜 阅读(191) 评论(0) 推荐(1) 编辑
摘要:我们关注的操作有:get,put,remove 这3个操作。 对于哈希表,Java中采用链表的方式来解决hash冲突的。一个HashMap的数据结构看起来类似下图: 实现了同步的HashTable也是这样的结构,它的同步使用锁来保证的,并且所有同步操作使用的是同一个锁对象。这样若有n个线程同时在ge 阅读全文
posted @ 2022-03-04 11:38 高压锅里的大萝卜 阅读(31) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示