java集合
文章平均质量分 81
Java我人生
java我人生,即使跑在路上被拌倒无数次,也不要规规矩矩走一辈子,岁月不止,奋斗不息,在为生活奔波的同时更希望为技术而痴狂,能够拥有自己的一家互联网公司!
展开
-
java集合中LinkedList源码浅析
LinkedList就传说中的双向循环链表了。是List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。链表操作优点:1.因为每个结点记录下个结点的引用,则在进转载 2015-01-07 16:58:54 · 830 阅读 · 0 评论 -
数组转List-典型代码缺陷分析(三)
以上为开发过程中,部分程序猿数组转list的“笨”方法,为什么说笨呢,因为这样做代码很繁琐不简练容易出错可读性叫差,而且还比较耗时,因为我要一个一个遍历数组,然后把这个元素添加到list中(不过以上代码还有几点,最好给ArrayList指定一个初始容量,注意和LinkedList的区别,以及split方法使用的效率和可能内存泄漏问题,此文不再详述,此处重点解读数组转list)。 其原创 2015-03-20 22:57:23 · 2440 阅读 · 1 评论 -
非阻塞线程安全列表——ConcurrentLinkedDeque应用举例
在java中,最常用的数据结构可能是列表。有数目不详的元素列表,你可以添加、阅读、或删除任何位置的元素。此外,并发列表允许不同的线程列表中添加或删除元素时不产生任何数据不一致。非阻塞列表提供如下操作,如果操作不能立即完成,列出抛出异常或者返回一个null值。Java 7中引入了ConcurrentLinkedDeque类,它实现了一个非阻塞并发列表,在本教程中,我们将学习使用这个类。翻译 2015-03-09 00:13:04 · 9624 阅读 · 0 评论 -
ConurrentHashMap和Hashtable的区别
集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别。这篇文章是HashMap的工作原理以及HashM翻译 2015-03-30 10:17:10 · 2283 阅读 · 0 评论 -
set,map,list集合的交集差集存放相同值反转分割等-代码优雅之道Guava(三)
前言 前边已经对Guava类库做了简单介绍(博文:Java代码优雅之道-Guava(有相关jar包下载)),下面就简单介绍操作Set,Map,List集合的工具类的使用,学会灵活使用这些工具,会使用我们在开发中,更加省时省力,代码健壮性和可读性更高,更简洁,这也是我所谓的“代码优雅”,让我们开发中省出时间来去处理更重要的东西,废话不多说,一看代码就全明了了。创建泛型集合更加简介原创 2015-04-24 08:49:03 · 20736 阅读 · 2 评论 -
ArrayList 、LinkedList和Vector比较
一、List回顾序列(List),有序的Collection,正如它的名字一样,是一个有序的元素列表。确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。实现List的有:ArrayList、LinkedList、Vector、Stack等。值得一提的是,Vector在JDK1.1的时翻译 2015-04-09 13:16:44 · 1541 阅读 · 0 评论 -
HashSet,TreeSet 和 LinkedHashSet比较
一、Set回顾一个不包括重复元素(包括可变对象)的Collection,是一种无序的集合。Set不包含满 a.equals(b) 的元素对a和b,并且最多有一个null。泥瓦匠的记忆宫殿:1、不允许包含相同元素2、判断对象是否相同,根据equals方法二、HashSet一个按着Hash算法来存储集合中的元素,其元素值可以是NULL。它不能保证元素的排列顺序。同样,H翻译 2015-04-09 13:22:21 · 1939 阅读 · 0 评论 -
SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间才解决了,特意记录下来,并和大家一同分享一下。 出现这个错误的原因一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,我的就是,因为的原创 2015-02-11 21:27:26 · 133300 阅读 · 32 评论 -
ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中转载 2015-07-16 08:50:48 · 1411 阅读 · 0 评论 -
哪种Map遍历方法更优?!—Map遍历方法的正确选择
我们都知道遍历Map一般有3种方法,values(),keySet()和entrySet(),常见的是keySet用的多,简单容易理解,entrySet()是返回Map中的静态内部类Entry类类型的Set实例,当然了你别说forEach,forEach只是一种代替for(int i=0;;)和while()遍历的一种方式,底层也是用迭代器实现的,只不过把部分东西隐藏了,建议大家平常开发中能用fo原创 2015-03-05 21:01:07 · 13757 阅读 · 2 评论 -
Java HashMap的工作原理
面试的时候经常会遇见诸如:“java中的HashMap是怎么工作的”,“HashMap的get和put内部的工作原理”这样的问题。本文将用一个简单的例子来解释下HashMap内部的工作原理。首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的。我们来看个非常简单的例子。有一个”国家”(Country)类,我们将要用Country对象翻译 2015-03-01 17:00:54 · 1779 阅读 · 0 评论 -
Java中ArrayList源码深入分析(JDK1.6)
ArrayList就是传说中的动态数组,就是Array的复杂版本,它提供了如下一些好处:动态的增加和减少元素、灵活的设置数组的大小...... 认真阅读本文,我相信一定会对你有帮助。比如为什么ArrayList里面提供了一个受保护的removeRange方法?提供了其他没有被调用过的私有方法? 首先看到对ArrayList的定义:[java] v转载 2015-01-04 14:28:53 · 1938 阅读 · 0 评论 -
java集合中HashMap原理详解
HashMap在Java开发中有着非常重要的角色地位,每一个Java程序员都应该了解HashMap。主要从源码角度来解析HashMap的设计思路,并且详细地阐述HashMap中的几个概念,并深入探讨HashMap的内部结构和实现细节,讨论HashMap的性能问题。1. HashMap设计思路以及内部结构组成HashMap设计思路 Map是一种以键值对存储数据的转载 2015-01-07 16:19:42 · 2521 阅读 · 2 评论 -
java集合框架中Hashtable源码(基于JDK1.6)
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和equals 方法。Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量。注意,哈希表的状态为open:在发生“哈希冲突”的情况下,单个原创 2015-01-07 20:37:11 · 868 阅读 · 0 评论 -
java集合框架中HashMap源码(基于JDK1.6)
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。此实现假定哈希函数将元素适当地分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代 collection 视图所需原创 2015-01-07 16:28:08 · 1332 阅读 · 0 评论 -
如何高效地判断数组中是否包含某特定值
如何检查一个未排序的数组中是否包含某个特定值,这是一个在Java中非常实用并且频繁使用的操作。另外,这也是Stack Overflow上面非常受关注的问题。在得票数最多的答案中,可以看到,检查数组中是否包含特定值可以用多种不同的方式实现,但是时间复杂度差别很大。下面,我将为大家展示各种方法及其需要花费的时间。1.检查数组中是否包含特定值的四种不同方法1)使用List:翻译 2015-02-11 23:25:22 · 4600 阅读 · 0 评论 -
Array.asList:数组转list时你一定要知道的“陷阱”!
最近开发中,业务上处理,经常用到asList方法,这让我不经想起了它的很多容易让人犯错的地方或者误解的地方,所以就想抽出时间来,整理一下,和大家分享出来,深夜了,话不多说,主要以代码为主,简易的代码,你一看就知道了!大家都知道这个方法是将数组转成list,是JDK中java.util包中Arrays类的静态方法。大家使用时一定要注意(请看代码): String原创 2015-02-12 22:57:47 · 45848 阅读 · 17 评论 -
那些年,我关于java集合的"老照片"!
今天翻书无意中在一本很破的java书中翻到2张我大二时画的集合的各个类的关系及各个类应该注意的地方的“图”,看了一会想想那时的我,还是挺有意思的。当时记得用“饭卡”比着话的,现在再看看画的“形状”和里边的内容,只能呵呵了。当时用来好长时间去画这2张图,就是秉着理清、整理、弄清集合的心理去完成这2张“图”,当时画完很是欣喜,恐怕丢了,特意去打印店里复印了3份,分别加在不同的书里。现在看来,里边的涉及原创 2015-02-13 21:58:30 · 1813 阅读 · 3 评论 -
BidiMapMultiMapLazyMap-apache-commons-collections中Map辅助类的使用
今天自己利用周末的时间额外学习了和测试了一下commons-collections中Map辅助类的,感觉还是不错的,挺有用的,尽管我们用JDK类里给的工具经过业务逻辑处理也能达到相同的作用与效果,但毕竟作为一个开源的工具类辅助类,apache推出来的,对它有个了解还是有必要的,使用起来很方便和顺手,特意在这里记录一下,和大家一同分享与进步,同时加深自己的印象(本人用的3.2版本)。BidiMa原创 2015-01-25 21:56:24 · 2571 阅读 · 0 评论 -
用javascript实现java中的集合list(后续不断完善优化)
今天业务上的需求,前台需要类似java集合list或者set那样的工具或者类型来处理一个比价复杂的业务,js中是没有这种集合工具的,用数组吧考虑了下还是长久下,写个类似的简单工具,做成公共js,然后后期不断完善和优化,以后用起来就很方便了,这里就记录和分享下我的代码,确切的说很不完善,和java中ArrayList功能还差一些,一些地方也待优化,不过可以临时救急用,网上搜到一两篇就,不过还有很多b原创 2015-09-11 09:12:29 · 2817 阅读 · 0 评论