Java集合总结
(只是想有基本的概念,请看这里;想了解具体内容,请从第二块开始)
集合就是将若干用途,性质形同或相近的数据组合而成的一个整体
Java集合可以分为Set,List和Map三种体系
Set:不区分元素的顺序,不允许出现重复元素
List:区分元素的顺序,且允许包含重复元素
Map:键-值(Key-Value)映射中保存成对的键-值信息,映射中不能包含重复的键盘,每个键只能映射一个值.
Java集合就像一个容器,可以把多个对象的引用放入到容器中.
Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组
在Java5之前,Java集合会丢失容器中OS有对象的数据类型,把所有的对象都当成Object类型处理;从Java5增加了泛型以后,Java集合可以记住容器中对象的数据类型.
java集合类
collection:集合层次中的根接口,存储一组不唯一,无序的对象
**List:**是一个有序的集合;元素可以重复,用index进行区分
ArrayList:相当于数组的数据结构;实现了长度可变的数组,在内存中分配连续的空间.遍历元素和随机访问元素的效率比较高
LinkedList:链表,有头节点和尾节点等;插入,删除元素时效率高
Set:元素不可重复;存储一组唯一,无序的对象
HashSet:所有的节点hash表的结构
TreeSet:所有的节点是按照树的结构存放的
Map:存储一组键值对象,提供key到value的映射
HashMap
TreeMap
集合类的作用
java的集合类提供了一些基本数据结构的支持
例如ArrayList,Linkedlist,Hashlist,TreeSet等
集合类的使用:
java的集合类包含在java.util包中.
import java.util.*
集合类特点一:
只容纳对象.这一点集和数组不同,数组可以容纳基本数据类型数据和对象.
如果集合类中想使用基本数据类型,又想利用集合类的灵活性,可以把基本数据类型封装成该数据类型的对象,放入集合中处理.
集合类特点二:
集合类容纳的对象都是Object类的实例,一旦把一个对象置入集合类中,它的类信息将丢失,这样设计的目的是为了集合类的通用性.
因为Object类是所有类的祖先,所以可以在这些集合中存放任何类的对象而不受限制,但是在使用集合成员之前必须对它进行重新塑造.
集合类对比
Vector和ArrayList的异同
实现原理相同,功能相同,很多情况下可以互用
主要区别
Vector线程安全,ArrayList重速度轻安全,线程非安全
长度需要增长时,Vector默认增长一倍,ArrayList增长50%
Hashtable和HashMap的异同
实现原理相同,功能相同,很多情况下可以互用
主要区别
Hashtable继承Dictionary类,HashMap实现Map接口
Hashtable线程安全,HashMap线程非安全
Hashtable不允许null值,HashMap允许null值
集合框架
集合框架:是为表示和操作集合而规定的一种统一的,标准的体系结构
任何集合框架都包括三大块内容:对外的接口,接口的实现和对集合运算的算法.
接口:表示集合的抽象数据类型.接口提供了让我们对集合中所表示的内容进行单独操作的可能
实现:集合框架中接口的具体实现.实际上它们就是那些可复用的数据结构.
算法:在一个实现了某个集合框架中的接口的对象上,完成某种有用的计算的方法,例如查找,排序等
集合框架的好处
提高程序设计的效率
提高程序速度和质量.集合框架通过提供对有用的数据结构和算法的高性能和高质量的实现使程序的速度和质量得到提高.
集合框架鼓励软件的复用.对于遵照标准集合框架接口的新的数据结构是可复用的.