引言:
集合——把一些能够确定的不同的对象看成一个整体,就说这个整体是由这些对象的全体构成的集合。其实在IT行业看来,就是一种数据类型。
概述:
集合框架:表示和操作集合的一种统一的标准的体系结构,任何集合框架都由三部门组成:对外的接口、接口的实现和对集合运算的算法,三者的关系:对外的接口实现了对集合中的内容进行单独操作的可能,接口的实现是对外接口的实际完成过程,而这个过程中核心的就是算法,也就是对数据的具体操作(查找、排序等)。Java2的集合框架核心包含三类:List、Set和Map,其中List和Set继承于Collection,就是这次我们主要学习的内容。
内容:
一 什么是Collection?
Collection是最基本的集合接口,一个Collection代表一组Object。但Java SDK不提供直接继承自Collection运行的类,一般都是继承Collection的子接口Set和List。
二 组成部分?
Collection接口派生出俩个子接口List和Set。下面分别介绍一下List和Set:
1 List:有序的Collection,包含ArrayList和LinkedList,区别在于ArrayList采用数组方式存储数据,支持索引检索数据,插入数据较慢;LinkedList采用双向链表实现存储,索引数据需要进行前向和后向遍历,插入数据通过指针记录前后元素,性能更快。相同点:都是线程不安全的。
2 Set:对于它是否有序,要看是它的那个扩展类,HashSet是无序的,TreeSet是有序的。HashSet特点:存储顺序和添加的顺序不同、线程不安全、允许集合中的元素为null。TreeSet可以保证集合处于排序状态(按一定规则,升序或者降序。)
三 在Java中的用法?
Collection在java中的用法体现在List和Set的使用上,这里分别阐述一下List和Set在java中的使用方法:
1 List:存对象:List调用add(Obj e)方法存入一个对象,存入的对象按照先后的顺序在集合中排序,也可以通过调用add(int index,Obj e)在特定位置插入一个对象。一个对象可以在List集合中反复存储,不过并不是把这个对象本身多次放入集合中,而是集合中多个索引值指向同一个对象;取对象:List除了可以通过Iterator接口取得所有元素,然后遍历取值外,还可以调用get(index i)来获得所需某个对象。类似于java的数组,区别在于是否固定内存。
2 Set:存对象:Set集合不允许有重复的元素,不能有俩个相等(不仅仅是相同)的对象,Set集合的add方法包含一个boolean的返回值,集合中没有某个对象,该对象成功加入集合Set,返回true,反之返回false;取对象:Set集合没法取某一个对象,只能通过Iterator取得所有对象,然后再逐一遍历得到需要的对象。
俩种方法各有特点,依据所需数据操作,选用适合的接口。
总结:
Java中相关的集合接口很多,我们需要多积累,多实践,总结各自的优缺点,不同情况使用不同的集合接口,下一篇博客总结另外一种集合接口Map,欢迎大家多多指点斧正。