类集就是一个动态对象数组,可以存放基本数据类型,也可以存放对象,Java中实现类集的包是java.util.*,使用类集必须先导入这个包 import java.util.*;
三大集合:List、Set、Map
概述:
保存单个值的集合:Collection,它有两个子类List,Set
保存一对值:Map
输出:|-Iterator:新的输出类,方法名称短,一般多用它输出
1.Collection接口:在开发中一般都不直接使用它,而使用它的子接口List、Set
List实现由它的ArrayList类完成,ArrayList继承AbstractList类并实现List接口,ArrayList是动态数组,
创建: List list=new ArrayList();
加入数据:add(Object obj);加入数据的顺序就是输出数据的顺序
删除数据:remove(Object obj);
LinkedList类提供了链表数据结构,其操作与ArrayList无异,由于用链表实现,所以增删快,查询慢
两者都使用Iterator(迭代器,循环器)输出,因为集合的长度不固定,所以Iterator采用一个一个的判断输出,有则输出。判断是否有下一个元素:hasNext()
如果想让集合中指加入某一种对象,使用泛型<E>
List的另一个子类:Vector,它是同步的,线程安全,但是效率低
Collection集合的主要操作方法:add(),remove(),size(),iterator(),get()
2.HashSet类继承AbstractSet类并且实现Set接口,无序,散列存放,数据不可以重复 Set set=new HashSet();
Set的使用基本与List一致,但是HashSet是无序的,如果希望存放时有序的,使用TreeSet,自动排序(与List不一样),它使用了Compareable接口排序。
注:HashSet的底层是由HashMap实现的
3.Map相当于电话本,通过键值一一对应,key-value,Map的主要功能是作为查找使用,而不是输出使用,
Map接口的对象不能直接使用Iterator输出,如果非要使用Iterator对象输出集合中的内容,使用一下步骤:
TreeMap与HashMap无异,但是它可以对数据进行排序,可以快速检索
Hashtable与HashMap类似,但Hashtable是同步的,同时不支持迭代函数(iterator)
4.Enumeration枚举类(一一列出所有可能),与Iterator功能相同,都是输出集合中的内容,List和Set都不能使用Enumeration输出,但是List的一个子类Vector可以使用它输出。
Vector v=new Vector();
判断是否有下一个内容:hasMoreElements
5.栈是一个先进后出的存储结构,进栈(push),出栈(pop)
属性类:Properties,与Hashtable不同的是,它主要保存字符串,而Hashtable保存对象。
存数据:setProperty(key,value)