1.hashmap
没有排序,键值对允许为null,线程不安全。键是有set实现的,因此不允许重复。
2.hashtable
是一个比较古老的方法,他的命名甚至不符合传统的命名规范。线程安全的,多个线程访问的时候也可以,继承来自dictionary类。键是有set实现的,因此不允许重复
-----------------------------------------
list的有用实现,主要是有四种;1arraylist 2.vector 3.linkedlist 4.stack
1.arraylist
底层是有数组实现的,线程不安全,适合查找等操作,元素可以重复。
2.vector
底层是数组,线程安全的,数据量巨大的时候比较适合。
3.linkedlist
底层是基于链表实现的,可以频繁的插入和删除。
-----------------
arraylist和vector在元素数量大于集合长度时,arraylist的增长率是50%,vector的增长率是100%,数据量巨大的时候比较适合。
------------------
toArrsy()方法:
基于数组实现的list在复制时,会把旧的数组复制到新的数组从而产生大量的不再被系统是用的变量,等待系统回收,而基于链表的不会出现这种问题。
vector和stack生来就是为了同步。
用法策略:
数据量不确定,但是已经填满不需要插入删除,只需要遍历。则先建立linkedlist保存数据, 再转为arraylist;
数据量确定,但是一经填满需要频繁的插入删除。则先建立arraylist保存数据,再转为linkedlist。
参考连接:
http://www.360doc.com/content/15/1103/11/28759931_510406071.shtml