转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的.例如Map,Set,List等.并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负…
有大半年没有写博客了,虽然一直有在看书学习,但现在回过来看读书基本都是一种知识“输入”,很多时候是水过无痕.而知识的“输出”会逼着自己去找出没有掌握或者了解不深刻的东西,你要把一个知识点表达出来,自己没有吃透是很难写出来的.我算是明白了为什么有些人可以通过写博客来学习,我也不能懒了,坚持写下去. 都以为自己对java的集合框架掌握得还可以,打开源码才发现我只是掌握了他们的基本使用,而对原理和数据结构方面只是略知一二.接下来的一段时间里,我会写一个专题详细总结java集合框架知识,首先从HashM…
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hljs-comment, .hljs-template_comment, .diff .hljs-header, .hljs-javadoc { color: #998; font-style: italic; } .hljs-keyword, .css .rule .hljs-keyword, .h…
目录: 0-1. 简介 0-2. 内部结构分析 0-2-1. JDK18之前 0-2-2. JDK18之后 0-3. LinkedList源码分析 0-3-1. 构造方法 0-3-2. put方法 0-3-3. get方法 0-3-4. resize方法 0-4. HashMap常用方法测试 简介 HashMap主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一.与HashTable主要区别为不支持同步和允许null作为key和value,所以如果你想要保证线程安全,可以…
根据<java编程思想>里面的说法,java集合又叫容器,按照单槽和双槽分为两类,Collection和Map,这两个都是接口. 一.Collection Collection下面又分了三个子接口,分别是Set,List和Queue,他们的特性分别是: 1.Set:元素唯一,即Set中的元素永远不可能重复,跟数学中的集合概念是一样的.它的所有实现类都有相同的特征. 主要实现类有三个:HashSet,LinkedHashSet,TreeSet HashSet的底层实现是HashMap中的key,…
collection大致介绍 Collection是集合层次结构中的根接口. 集合表示一组对象.有些集合允许重复元素,有些则不允许.有些是有序的,有些是无序的. JDK没有提供此接口的任何直接实现:它提供了更具体的子接口(如Set和List)的实现. 这个接口通常用于在需要最大通用性的地方传递和操作集合 包或多集(可能包含重复元素的无序集合)应该直接实现此接口. Collection的大致结构体系: 其中常用的有: List, ArrayList, LinkedList, Vector. Set…
HashMap和Hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别.主要的区别有:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行). HashMap是非synchronized,而Hashtable…
上图转载自:http://www.cnblogs.com/vamei/archive/2013/04/15/3000913.html 一.区别和联系 1.迭代器 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator.第一次调用Iterator的next()方法时,…
Set.List和Map是java collection中最常用的三种数据结构. Set是集合,不允许有重复的元素,List是动态数组实现的列表,有序可重复,Map是key-value的键值对,用于快速存取. Set的常用方法: add() 插入元素 clear() 清空集合 contains() 是否包含某元素 equals() 是否和某对象完全相同 isEmpty() 是否为空 remove() 删除某元素 List常用方法: add() 插入元素 clear() 清空集合 contains…
ArrayList是基于动态数组实现的list,而LinkedList是基于链表实现的list.所以,ArrayList拥有着数组的特性,LinkedList拥有着链表的特性. 优缺点 ArrayList 优点:因为Array是基于索引(index)的数据结构,适合随机读取数据,读取速度快,可以一步get(index). 缺点:添加删除值很慢,一方面,添加数据在array中间的时候,需要移动后面的数:另一方面,当长度大于初始长度的时候,每添加一个数,都会需要扩容. LinkedList:双向链表…