Java集合框架
liucw_cn
喜爱java
展开
-
Java集合操作
public static boolean WriteToFile(File file, String str, String encoding) { BufferedWriter writer = null; boolean e1; try { writer = new BufferedWriter(new OutputS原创 2015-12-26 15:31:16 · 1224 阅读 · 0 评论 -
Java集合框架之Set--HashSet源码分析
一、 HashSet概述: HashSet 是一个没有重复元素的集合。 由HashMap实现的 不保证元素的顺序,特别是它不保证该顺序恒久不变。 允许使用 null 元素。 非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这原创 2016-04-04 16:08:57 · 1235 阅读 · 0 评论 -
Java集合框架之List---ArrayList与LinkedList源码分析
一、 ArrayList概述:ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的Copy原创 2016-01-26 13:51:22 · 5982 阅读 · 3 评论 -
Java集合框架之Map--IdentityHashMap,WeakHashMap,EnumMap源码分析
一、IdentityHashMap该类特点是: 1.只有全等的key值,该类才会认为两个key值相等。比如new String(“11”) 与new String(“11”),这两个对象就不是全等,而一般的HashMap则认为上面两个对象是相等的。 2.并且该类非常有意思的是,在key-value数据的存储上,类似于HashMap,采用map数组进行存储,但是key-v原创 2016-11-18 17:02:39 · 1356 阅读 · 0 评论 -
Java集合框架之Map--TreeMap源码分析
TreeMap基于红黑树(点击查看树、红黑树相关内容)实现。查看“键”或“键值对”时,它们会被排序(次序由Comparable或Comparator决定)。TreeMap的特点在于,所得到的结果是经过排序的。TreeMap是唯一的带有subMap()方法的Map,它可以返回一个子树。原创 2016-11-17 23:37:56 · 1162 阅读 · 0 评论 -
Java集合框架之Map--Hashtable和Properties源码分析
1、Hashtable 简介和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable 继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为null。此外,Hashtabl原创 2016-04-10 10:56:44 · 1029 阅读 · 0 评论 -
Java集合框架之Map---HashMap和LinkedHashMap源码分析
1、HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。2、原创 2016-01-28 11:22:44 · 2643 阅读 · 1 评论 -
Java并发----ConcurrentHashMap02--源码分析
通过分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要原创 2016-11-06 21:46:36 · 1076 阅读 · 0 评论 -
java集合----Iterable和Iterator的区别
1).Iterator是迭代器类,而Iterable是为了只要实现该接口就可以使用foreach,进行迭代. 2).Iterable中封装了Iterator接口,只要实现了Iterable接口的类,就可以使用Iterator迭代器了。 3).集合Collection、List、Set都是Iterable的实现类,所以他们及其他们的子类都可以使用foreach进行迭代。 4).It原创 2016-09-06 11:32:38 · 984 阅读 · 0 评论 -
Java集合框架里ArrayList Vector和LinkedList的区别
一、Vector和ArrayList相同点:Vector和ArrayList都是基于储存元素的Object[] array来实现的,是根据索引来访问元素。不同点:1)同步性 Vector的方法大部分是同步的,是线程安全的; 而ArrayList的方法不是同步的。 由于线程的同步必然要影响性能,Vector开销就比较大,这样就造成ArrayList比Vec原创 2016-04-04 13:21:10 · 1382 阅读 · 1 评论 -
Java接口RandomAccess
在jdk文档中对RandomAccess接口的定义如下: public interface RandomAccess下面是jdk的注解翻译 List 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问。此接口的主要目的是允许一般的算法更改其行为,从而在将其应用到随机或连续访问列表时能提供良好的性能。 将操作随机访问列表的最佳算法(如 ArrayList )原创 2016-04-04 15:09:13 · 1324 阅读 · 0 评论 -
Java数据结构----栈(Stack)源码分析和个人简单实现
栈单链表实现:没有长度限制,并且出栈和入栈速度都很快public class LinkedListStack { private LinkedList linkedList = new LinkedList(); //入栈 public void push(Object obj) { linkedList.insertHead(obj);原创 2016-02-17 23:29:07 · 5616 阅读 · 0 评论 -
Java之哈希表
一、 Hash表概念 在查找表中我们已经说过,在Hash表中,记录在表中的位置和其关键字之间存在着一种确定的关系。这样我们就能预先知道所查关键字在表中的位置,从而直接通过下标找到记录。使ASL趋近与0.1) 哈希(Hash)函数是一个映象,即:将关键字的集合映射到某个地址集合上,它的设置很灵活,只要这个地址集合的大小不超出允许范围即可;2) 由于哈希函数是一个压缩原创 2016-01-28 11:57:34 · 1422 阅读 · 0 评论 -
Java方法之--System.arraycopy方法和Arrays.copyOf()
System.arraycopy方法:如果是数组比较大,那么使用System.arraycopy会比较有优势,因为其使用的是内存复制,省去了大量的数组寻址访问等时间public static native void arraycopy(Object src, int srcPos, Object dest,原创 2016-01-26 16:10:26 · 32885 阅读 · 4 评论