当前搜索:

RandomAccess接口理解

https://blog.csdn.net/stick2it/article/details/53469910 根据javadoc上面的的解释是: RandomAccess 是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的...
阅读(14) 评论(0)

HashMap为什么是线程不安全的?

一直以来只是知道HashMap是线程不安全的,但是到底HashMap为什么线程不安全,多线程并发的时候在什么情况下可能出现问题? HashMap底层是一个Entry数组,当发生hash冲突的时候,hashmap是采用链表的方式来解决的,在对应的数组位置存放链表的头结点。对链表而言,新加入的节...
阅读(179) 评论(0)

Iterator的remove()和Collection的remove()

一、遍历集合的方式有很多,这里就以List 为例 如果是单线程的我们一般使用: int  len= list.size() [java] view plain copy for (int i=0;i    }   如果是多线程...
阅读(112) 评论(0)

【Java集合源码剖析】LinkedHashmap源码剖析

转载请注明出处:http://blog.csdn.net/ns_code/article/details/37867985     前言:有网友建议分析下LinkedHashMap的源码,于是花了一晚上时间研究了下,分享出此文(这个系列的最后一篇博文了),希望大家相互学习。Lin...
阅读(115) 评论(0)

Java提高篇(三四)-----fail-fast机制

在JDK的Collection中我们时常会看到类似于这样的话:         例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出 ConcurrentModificati...
阅读(125) 评论(0)

java中fail-fast 和 fail-safe的区别

原文地址:http://javahungry.blogspot.com/2014/04/fail-fast-iterator-vs-fail-safe-iterator-difference-with-example-in-java.html 在我们详细讨论这两种机制的区别之前,首先得先了解...
阅读(126) 评论(0)

ArrayDeque

前言 Java里有一个叫做Stack的类,却没有叫做Queue的类(它是个接口名字)。当需要使用栈时,Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque;既然Queue只是一个接口,当需要使用队列时也就首选ArrayDeque了(次选是LinkedList)。 总体介绍 ...
阅读(94) 评论(0)

Hashpmap的原理,HashMap怎样保证key的唯一性

1.    HashMap概述    HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。   2.    HashMap的数据结构    在java编程语言...
阅读(604) 评论(0)

HashMap的基本原理与它的线程安全性

http://blog.csdn.net/t894690230/article/details/51323946 1. 前言 能用图说清楚的,就坚决不用代码。能用代码撸清楚的,就坚决不写解释(不是不写注释哦)。 以下所有仅针对JDK 1.7及之前中的HashMap。 ...
阅读(940) 评论(0)

BlockingQueue的基本原理

http://blog.csdn.net/t894690230/article/details/53088660 1. 前言 BlockingQueue即阻塞队列,它算是一种将ReentrantLock用得非常精彩的一种表现,依据它的基本原理,我们可以实现Web中的长连接聊天功能,...
阅读(692) 评论(0)

HashMap的扩容机制---resize() & 死循环的问题

1.8 与1.7 变化较大, http://www.cnblogs.com/RGogoing/p/5285361.html 学习内容: 1.HashMap在多线程的情况下出现的死循环现象     当初学Java的时候只是知道HashMap在并发的情况下使用的话,会...
阅读(3222) 评论(3)

Map拷贝 关于对象深拷贝 浅拷贝的问题

问题:map拷贝时发现数据会变化。 高能预警,你看到的下面的栗子是不正确的,后面有正确的一种办法,如果需要看的话的,请看到底,感谢各同学的提醒,已做更正,一定要看到最后      先看例子:            public class CopyMap {...
阅读(2111) 评论(0)

[Java基础要义]HashMap、LinkedHashMap元素遍历机制探讨

http://blog.csdn.net/luanlouis/article/details/43017071       Map作为键值对Entry的的容器,对其内部 键值对Entry 的遍历总归是要有一个顺序的。       本文重点讨论HashMap及其子类LinkedH...
阅读(329) 评论(0)

LinkedHashMap

HashMap:         put -> addEntry(新建一个Entry)         get         getEntry   LinkedHashMap:        put -> addEntry(重写)      ...
阅读(254) 评论(0)

Java遍历HashMap并修改(remove)

遍历HashMap的方法有多种,比如通过获取map的keySet, entrySet, iterator之后,都可以实现遍历,然而如果在遍历过程中对map进行读取之外的操作则需要注意使用的遍历方式和操作方法。 1 2 3 4 5 6 7 8 9 10 1...
阅读(1542) 评论(0)

Java Core系列之ConcurrentHashMap实现(JDK 1.7)

ConcurrentHashMap类似Hashtable,是HashMap更高效的线程安全版本的实现。不同于Hashtable简单的将所有方法标记为synchronized,它将内部数组分成多个Segment,每个Segment类似一个Hashtable,从而减少锁的粒度,并且它内部有一些比较tr...
阅读(654) 评论(0)

HashMap的工作原理

程的环境下使用HashMap呢?:)   热心的读者贡献了更多的关于HashMap的问题: 为什么String, Interger这样的wrapper类适合作为键? String, Interger这样的wrapper类作为HashMap的键是再适合不过了,而且String最为常用。因为St...
阅读(631) 评论(0)

Hashtable的遍历方法

今天遇到用hashtable取值时发现取得的值是排过序的,而我并希望它排序输出,因为它是倒序输出,查一下原因是因为我用下面的第一种方法取值的,将hashtable的值排序输出了,这个真是我疏忽的问题,原来hashtable还具有自动排序的功能.于是我从网上查了些资料,并整理记录下来: imp...
阅读(818) 评论(0)

HashSet HashTable HashMap的区别

(1)HashSet是set的一个实现类,hashMap是Map的一个实现类,同时hashMap是hashTable的替代品(为什么后面会讲到). (2)HashSet以对象作为元素,而HashMap以(key-value)的一组对象作为元素,且HashSet拒绝接受重复的对象.HashMa...
阅读(464) 评论(0)

Java Map 如何实现Key 的唯一性?

大家都知道,在Map和Set不可存在重复元素?  但是对于内部的细节我们并不了解,今天我们就一块来 探讨一下! 1 对于 HashMap  HashSet   他们的底层数据结构的实现是:维护了一张  HashTable 。容器中的元素全部存储在Hashtable 中...
阅读(2919) 评论(0)
    个人资料
    持之以恒
    等级:
    访问量: 986万+
    积分: 8万+
    排名: 19
    文章分类
    最新评论