java的集合框架
什么是集合。通常情况下,把具有相同性质的一类东西,汇聚成一个整体,就可以称为集合,比如全体中国人,比如所有月份,等等。
那么什么是集合框架。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。为什么要用这个概念呢?可以想个例子。如何存储每天新闻信息?要知道每天的新闻总数是不变的,太少会浪费空间,太多空间不足。还有如果让你做个教务系统,如何存储课程的代码和课程信息,并且能够通过代码便携地获得课程信息?要知道存的时候并不知道程序运行时需要多少对象。当然,并不是说我们用其他途径解决不了上面的问题。但是“集合框架”的提出,为这类问题的解决提供了标准又简单的途径。
任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。
java中集合类定义主要是java.util.*包下,常用的集合定义了三大接口
分别是:Collection接口下的Set和List接口;Map接口。
Collection接口存储一组不唯一,无序的对象
List接口存储一组不唯一,有序(先进先出)的对象
图示:
Set接口存储一组唯一,无序的对象
图示:
Map接口存储一组键值对,提供key到value的映射。
图示:
List中有ArrayList与LinkedList,前者实现了长度可以变化的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。后者采用链表存取的方式。插入和删除元素的效率较高。
方法总结:
集合类的对比(很多情况下两者可以互换,但也有区别):
Vector和ArrayList:
前者线程安全,后者重速度轻安全,线程非安全
长度需增长时,前者默认增长一倍,后者增长50%。
Hashtable和HashMap:
前者继承自Dictionary类,后者实现Map接口
前者线程安全,后者线程非安全
前者不允许null值,后者允许。