码迷,mamicode.com
首页 > 其他好文 > 详细

J2SE基础:10集合2

时间:2014-08-07 07:15:49      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:style   使用   io   数据   for   ar   cti   算法   

2:列表(List)


特点:
(1):有序的(插入的顺序有序),元素有索引值。

(2):允许重复。




set/get/listIterator/subList




ArrayList


特点:(1):底层数组方式实现。
     (2):元素是有序的。(是指添加进去的元素有序,不是指对象之间的顺序)
     (3):不是线程同步的。

     (4):由于是用数组实现,查找比较快。



循环:


迭代器
For循环


双向迭代器




LinkedList


特点:(1):底层机制链表方式实现。
     (2):元素是有序的。(是指添加进去的元素有序,不是指对象之间的顺序)
     (3):不是线程同步的。
     (4):由于是用链表实现,因此增删改对象比较容易。查找比较慢。




CopyOnWriteArrayList


特点:(1):底层机制数组方式实现。
     (2):元素是有序的。(是指添加进去的元素有序,不是指对象之间的顺序)
     (3):它是线程同步的。
     (4):由于是用数组实现,因此查找比较快。增删改比较慢。


List中的subList方法


subList也会出现快速失败异常。

解决方法:重新用subList截取的集合视图构建一个新的List即可。
List list = new ArrayList();
List list2 = list.subList(3,5);
list.removeAll(list2);



List list = new ArrayList();
List list2 = new ArrayList(list.subList(3,5));
list.removeAll(list2);

Stack(数据结构)


(1):有序的(插入的顺序有序),元素有索引值。
(2):允许重复。
(3):数据先进后出。




3:映射(Map)


特点:


(1):键值对的数据对象。键不能重复。(键重复的话,后面添加的覆盖前面)
   一个键对应一个值。


HashMap


(1):底层以哈希算法实现
(2):允许一个NULL键,允许多个NULL值。
(3):无序
(4):不是线程同步。


LinkedHashMap


(1):底层以链表算法实现
(2):允许一个NULL键,允许多个NULL值。
(3):有序(添加的顺序有序)
(4):不是线程同步。

存值:put(key,value);

取值: value = get(key)




迭代Map




A:使用KeySet(返回所有键的集合,循环键的集合,取出每一个键,再通过键取值)。

B:使用values(返回所有值的集合),只能获取值(值可以重复,所以不能通过值获取键)

C:使用entrySet(返回键值对的集合)。集合中的每一个元素都是一个Map.entry实体对象。







4:队列(Queue)



特点:
(1):与Stack一样,队列是一种数据结构。先进先出的特点。


添加:offer




删除:remove




获取队列元素 poll




单向队列:Queue queue = new LinkedList();




双向队列:LinkedList queue = new LinkedList();//这样双向队列可以操作队首与队尾。






5:老的一些集合框架类


特点:


全部都是线程安全的。


Vector


特点:(1):底层数组方式实现。
     (2):元素是有序的。(是指添加进去的元素有序,不是指对象之间的顺序)
     (3):是线程同步的。
     (4):由于是用数组实现,查找比较快。




HashTable


(1):底层以哈希算法实现
(2):不允许NULL键,不允许NULL值。
(3):无序
(4):线程同步。


Enumeration


老的迭代器。没有提供remove元素的方法。(因为老集合都是线程安全的).




集合的工具类:



Arrays:用于操作数组的工具类。对于数组的排序,添加,查找。

Collections:用于操作集合的工具类。对于集合的排序,添加,查找,比较等。








集合之间的相互转换


数组转List

数组转SET



List转数组

Set转数组

List转SET

J2SE基础:10集合2,布布扣,bubuko.com

J2SE基础:10集合2

标签:style   使用   io   数据   for   ar   cti   算法   

原文地址:http://blog.csdn.net/wobendiankun/article/details/38411503

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!