随笔 - 2228  文章 - 4  评论 - 371  阅读 - 1109万

随笔分类 -  java-collection

1 2 3 下一页
并发容器之ConcurrentSkipListSet
摘要:概要 本章对Java.util.concurrent包中的ConcurrentSkipListSet类进行详细的介绍。内容包括:ConcurrentSkipListSet介绍ConcurrentSkipListSet原理和数据结构ConcurrentSkipListSet函数列表Concurrent 阅读全文
posted @ 2016-08-05 17:25 duanxz 阅读(8404) 评论(0) 推荐(0) 编辑
HashSet中是如何判断元素是否重复的
摘要:HashSet不能添加重复的元素,当调用add(Object)方法时候,首先会调用Object的hashCode方法判hashCode是否已经存在,如不存在则直接插入元素;如果已存在则调用Object对象的equals方法判断是否返回true,如果为true则说明元素已经存在,如为false则插入元... 阅读全文
posted @ 2015-12-04 20:52 duanxz 阅读(10285) 评论(0) 推荐(0) 编辑
RocketMQ之六:RocketMQ消息存储
摘要:一、RocketMQ的消息存储基本介绍 先看一张图: 1、Commit log存储消息实体。顺序写,随机读。2、Message queue存储消息的偏移量。读消息先读message queue,根据偏移量到commit log读消息本身。3、索引队列用来存储消息的索引key使用mmap方式减少内存拷 阅读全文
posted @ 2015-12-04 20:45 duanxz 阅读(12443) 评论(9) 推荐(5) 编辑
java List.subList方法中的超级大陷阱
摘要:ArrayList 中 subList 的基本用法: subList(fromIndex:int,toIndex:int):List<E> 返回从fromIndex到toindex-1 的 子列表 在使用集合中,可能常常需要取集合中的某一部分子集来进行一下操作,于是subList这个方法就映入我们的 阅读全文
posted @ 2015-12-02 16:58 duanxz 阅读(6360) 评论(0) 推荐(2) 编辑
对JAVA集合进行遍历删除时务必要用迭代器
摘要:java集合遍历删除的方法: 1、当然这种情况也是容易解决,实现方式就是讲遍历与移除操作分离,即在遍历的过程中,将需要移除的数据存放在另外一个集合当中,遍历结束之后,统一移除。 2、使用Iterator遍历删除。 使用Iterator遍历删除的原因: Iterator 是工作在一个独立的线程中,并且 阅读全文
posted @ 2015-08-22 15:26 duanxz 阅读(6095) 评论(0) 推荐(0) 编辑
Java中的10颗语法糖
摘要:语法糖(Syntactic Sugar):也称糖衣语法,指在计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。通常来说,使用语法糖能够增加程序的可读性,减少程序代码出错的机会。 相对于C#及许多其他JVM来说,Java在现代编译语言之中属于“低糖语言”。尤其是JDK1. 阅读全文
posted @ 2015-08-06 15:58 duanxz 阅读(8444) 评论(0) 推荐(0) 编辑
Servlet3.0之九:web模块化
摘要:一、使用web-fragment.xml 在Servlet 3.0中,可以使用标注来设置Servlet的相关信息。实际上,Web容器并不仅读取/WEB-INF/classes中的Servlet标注信息,如果一个JAR文件中有使用标注的Servlet,Web容器也可以读取标注信息、载入类并注册为Ser 阅读全文
posted @ 2015-05-13 09:46 duanxz 阅读(739) 评论(0) 推荐(0) 编辑
TreeMap源码解析
摘要:1、TreeMap介绍 TreeMap是一个通过红黑树实现有序的key-value集合。 TreeMap继承AbstractMap,也即实现了Map,它是一个Map集合 TreeMap实现了NavigableMap接口,它支持一系列的导航方法, TreeMap实现了Cloneable接口,它可以被克 阅读全文
posted @ 2015-04-25 10:31 duanxz 阅读(569) 评论(0) 推荐(0) 编辑
集合总体大纲
摘要:前言 Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Co 阅读全文
posted @ 2015-04-25 10:18 duanxz 阅读(448) 评论(0) 推荐(0) 编辑
LinkedHashSet的实现原理
摘要:LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少 阅读全文
posted @ 2015-04-08 23:01 duanxz 阅读(2608) 评论(0) 推荐(1) 编辑
HashMap源码解析
摘要:要理解HashMap, 就必须要知道了解其底层的实现, 而底层实现里最重要的就是它的数据结构了,HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 在分析要理解HashMap源码前有必要对hashcode进行说明。以下是关于HashCode的官方文档定义: hashcode方法 阅读全文
posted @ 2015-04-05 12:17 duanxz 阅读(621) 评论(0) 推荐(0) 编辑
LinkedList源码解析
摘要:LinkedList是基于链表结构的一种List,在分析LinkedList源码前有必要对链表结构进行说明。1.链表的概念链表是由一系列非连续的节点组成的存储结构,简单分下类的话,链表又分为单向链表和双向链表,而单向/双向链表又可以分为循环链表和非循环链表,下面简单就这四种链表进行图解说明。 1.1 阅读全文
posted @ 2015-04-05 11:52 duanxz 阅读(417) 评论(0) 推荐(0) 编辑
ArrayList源码解析
摘要:ArrayList简介 ArrayList定义 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。 阅读全文
posted @ 2015-04-05 11:42 duanxz 阅读(647) 评论(0) 推荐(0) 编辑
HashSet的实现原理
摘要:HashSet定义 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺 阅读全文
posted @ 2015-04-05 11:35 duanxz 阅读(1524) 评论(0) 推荐(0) 编辑
LinkedHashMap的实现原理
摘要:1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在 阅读全文
posted @ 2015-03-31 19:11 duanxz 阅读(386) 评论(0) 推荐(0) 编辑
使用Apache 的lib进行List、Set、数组之间的转换(转)
摘要:使用Apache Jakarta Commons Collections:import org.apache.commons.collections.CollectionUtils; String[] strArray = {"aaa", "bbb", "ccc"}; List strL... 阅读全文
posted @ 2014-08-02 11:04 duanxz 阅读(1821) 评论(0) 推荐(0) 编辑
Hashtable的实现原理
摘要:Hashtable 简介 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这 阅读全文
posted @ 2014-03-07 16:11 duanxz 阅读(1135) 评论(0) 推荐(0) 编辑
HashMap的实现原理
摘要:数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难; 链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特 阅读全文
posted @ 2014-02-10 11:26 duanxz 阅读(623) 评论(0) 推荐(0) 编辑
阻塞队列之一:BlockingQueue汇总
摘要:一、阻塞队列介绍二、3种类型的BlockingQueue三、阻塞队列成员介绍四、BlockingQueue 的方法五、Queue中 remove/poll, add/offer, element/peek区别 一、阻塞队列介绍 BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费 阅读全文
posted @ 2013-10-31 20:08 duanxz 阅读(1124) 评论(0) 推荐(0) 编辑
阻塞队列之二:LinkedTransferQueue
摘要:一、LinkedTransferQueue简介 TransferQueue是一个继承了BlockingQueue的接口,并且增加若干新的方法。LinkedTransferQueue是TransferQueue接口的实现类,其定义为一个无界的队列,具有先进先出(FIFO)的特性。 有人这样评价它:"T 阅读全文
posted @ 2013-10-31 09:11 duanxz 阅读(1396) 评论(0) 推荐(0) 编辑

1 2 3 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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