您的位置:首页 > 编程语言 > Java开发

java集合--ArrayList HashSet HashMap Hashtable LinkList

2016-08-21 13:40 465 查看


List

java.util.ArrayList | LinkedList 类,List集合;   

 声明方式:List | ArrayList  [<E>]   list  = new ArrayList [< E >] (); 

    List | LinkedList [< E >]  list = new LinkedList [<E>]();    <E>可省略不写,eclispe会有警告提示,E为合法的java数据类型

区别:ArrayList类:可变的数组集合,初始化大小为10,并允许包括 null 在内的所有元素;可以根据索引位置对集合进行快速的随机访问;插入和删除比较慢;

LinkedList类:链表结果保存对象;对插入和删除对象快速;随机访问集合中的对象效率比较低;

ArrayList中有许多对数组的操作方法,具体可查看JDK API文档

set(index, value); 修改数组下标为index的值为value;index不能超出现数组长度,否则会报数组越界(ps:与数组相同,集合的索引也是从0开始);

Set

java.util.HashSet | TreeSet类,Set集合;

        声明方式:HashSet [<E>]  hashSet = new HashSet [<E>]();   <E>可省略不写,E为数据类型,基本数据类型和Object

区别:HashSet:实现了Set接口,默认初始容量是 16,加载因子是 0.75;由哈希表(实际上是一个
HashMap 实例)支持。它不保证 set 的迭代顺序;

特别是它不保证该顺序恒久不变;此类允许使用
null 元素。

TreeSet:实现了Set、SortedSet接口,集合遍历时,可以按照自然顺序或者指定顺序排序。

共同点:不能包含该重复对象,校验新增;

HashSet 中有很多对Map的操作方法,具体可以查看JDK API文档

Map

java.util.HashMap | TreeMap | Hashtable类,Map集合;

声明方式: HashMap [<E, E>]  hashMap = new HashMap [<E, E>] ();   

          TreeMap [<E, E>]  hashMap = new TreeMap [<E, E>] (); 

 Hashtable [<E, E>]  hashMap = new Hashtable[<E, E>] ();   

区别:HashMap:是非线程安全的,HashMap的键和值都允许有null值存在,但必须保证key的唯一性;不保证映射的顺序,特别是它不保证顺序恒久不变;

默认初始容量是 11,加载因子是 0.75

TreeMap:集合的映射关系具有一定的顺序,因此添加、删除、定位的效率会差,也不允许键对象是null;

Hashtable:是线程安全的,肯定执行效率就会差些;这个里面讲的比较详细:http://blog.csdn.net/u012050154/article/details/50905364

共同点:map是存储键和值双列数据集合,但存储的数据是没有顺序的,key不能重复,value可以重复,可以通过每个key,找到其对应的value;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: