java集合
文章平均质量分 66
战争学院
祖国的花朵
展开
-
Java HashMap的工作原理
文章出处:http://www.importnew.com/10620.html 面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。转载 2016-01-18 21:27:36 · 457 阅读 · 0 评论 -
Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。转载 2016-08-23 15:55:48 · 206 阅读 · 0 评论 -
LRUMap 源代码实现解读
本文通过对Apache Commons Collections 项目中LRUMap这个集合类的源代码进行详细解读,为帮助大家更好的了解这个集合类的实现原理以及使用如何该集合类。 首先介绍一下LRU算法. LRU是由Least Recently Used的首字母组成,表示最近最少使用的含义,一般使用在对象淘汰算法上。也是比较常见的一种淘汰算法。 LRUMap 则是实现的LRP算转载 2016-08-19 00:00:23 · 379 阅读 · 0 评论 -
ConcurrentHashMap使用要点
ConcurrentHashMap的简要总结: 1、public V get(Object key)不涉及到锁,也就是说获得对象时没有使用锁; 2、put、remove方法要使用锁,但并不一定有锁争用,原因在于ConcurrentHashMap将缓存的变量分到多个Segment,每个Segment上有一个锁,只要多个线程访问的不是一个Segment就没有锁争用,就没有堵塞,各线程用各自转载 2016-08-18 22:39:12 · 289 阅读 · 0 评论 -
Java集合---ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅转载 2016-08-18 21:54:11 · 155 阅读 · 0 评论 -
java集合类深入分析之TreeMap/TreeSet篇
简介 TreeMap和TreeSet算是java集合类里面比较有难度的数据结构。和普通的HashMap不一样,普通的HashMap元素存取的时间复杂度一般是O(1)的范围。而TreeMap内部对元素的操作复杂度为O(logn)。虽然在元素的存取方面TreeMap并不占优,但是它内部的元素都是排序的,当需要查找某些元素以及顺序输出元素的时候它能够带来比较理想的结果。可以说,TreeMa转载 2016-07-25 16:44:54 · 240 阅读 · 0 评论 -
java集合类深入分析之HashSet, HashMap篇
简介 Map和Set是比较常用的两种数据结构。我们在平常的编程中经常会用到他们。只是他们的内部实现机制到底是怎么样的呢?了解他们的具体实现对于我们如何有效的去使用他们也是很有帮助的。在这一篇文章里,已经对HashMap, HashSet的实现做了一个详细的讨论。这里主要是针对Map, Set这两种类型的数据结构规约和典型的HashMap,HashSet实现做一个讨论。 Ma转载 2016-07-25 16:28:03 · 169 阅读 · 0 评论 -
Java中HashMap遍历的两种方式
第一种:使用entrySet()遍历 Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.g原创 2016-06-27 13:38:17 · 168 阅读 · 0 评论 -
hashmap实现原理浅析
http://www.cnblogs.com/lzrabbit/p/3721067.html hashmap实现原理浅析 看了下JAVA里面有HashMap、Hashtable、HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和HashMap、Hashtable的区别 HashM转载 2016-04-12 21:19:13 · 233 阅读 · 0 评论 -
Java集合中那些类是线程安全的 以及 Map线程安全几种实现方法
线程安全类 在集合框架中,有些类是线程安全的,这些都是jdk1.1中的出现的。在jdk1.2之后,就出现许许多多非线程安全的类。 下面是这些线程安全的同步的类: vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。 statck:堆栈类,先进后出 hash原创 2016-03-21 20:19:48 · 8150 阅读 · 0 评论 -
HashMap的实现原理
作者:xwdreamer 出处:http://www.cnblogs.com/xwdreamer 1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程安全的,也就是同步的)。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特转载 2016-03-07 11:11:59 · 197 阅读 · 0 评论 -
“快速失败”也就是fail-fast,Java集合的一种错误检测机制。
原文出自:http://cmsblogs.com/?p=1220,个人站点:http://cmsblogs.com 在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 Concur转载 2016-01-15 10:21:55 · 1184 阅读 · 0 评论 -
深入了解Java之二(集合方面)
1.Java集合类框架的基本接口有哪些?集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。 Java集合类提供了一套设计良好的支持对一组对象进行操作的接口和类。Java集合类里面最基本的接口有: Collection:代表一组对象,每一个对象都是它的子元素。 Set:不包含重复元素的Collect原创 2016-01-13 22:46:49 · 242 阅读 · 0 评论 -
Java中迭代器的使用
Java中迭代器的使用 文章出处:http://www.cnblogs.com/airwindow/archive/2012/06/25/2560811.html 由于Java中数据容器众多,而对数据容器的操作在很多时候都具有极大的共性,于是Java采用了迭代器为各种容器提供公共的操作接口。 使用Java的迭代器iterator可以使得对容器的遍历操作完全与其底层相隔离,可以转载 2016-01-14 22:36:54 · 283 阅读 · 0 评论 -
深入了解Java之三(集合方面)
1.Enumeration接口和Iterator接口 2.HashSet,LinkedHashSet和TreeSet区别原创 2016-01-29 11:03:33 · 232 阅读 · 0 评论 -
深入了解Java之二(集合方面绪)
1.快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?那么何为”快速失败”机制呢? “快速失败”也就是fail-fast,它是Java集合的一种错误检测机制。当多个线程对集合进行结构上的改变的操作时,有可能会产生fail-fast机制。记住是有可能,而不是一定。例如:假设存在两个线程(线程1、线程2),线程1通过Iterator在遍历集合A中的元素,在某个时候线程2原创 2016-01-21 20:16:29 · 431 阅读 · 0 评论 -
java中PriorityQueue优先级队列使用方法
文章出处:http://blog.csdn.net/hiphopmattshi/article/details/7334487 优先级队列是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。 PriorityQueue是从JDK1.5开始提供的新的数据结构接口。 如果不提供Comparator的话,优先队列中元素默认按自然顺序排列,也就是转载 2016-01-19 21:27:20 · 573 阅读 · 0 评论 -
comparator接口与Comparable接口的区别
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Person{ String name; int age }. 当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collect转载 2016-01-19 21:19:14 · 226 阅读 · 0 评论 -
LinkedHashMap 保持有序迭代原理
之前一直有这个疑问,今天有时间就把源码看了看终于知道了原理。分享给大家也做笔记自己可以随后查看�?br style="box-sizing: inherit; -webkit-tap-highlight-color: transparent;"> linkedHashMap entry 继承了hashMap.Entry 然后定义了一个before与after用来存储当前key的上一个值引用和下一转载 2016-08-26 08:45:28 · 987 阅读 · 0 评论