集成框架
框架:
是可重用的,半完成的应用程序,可以用来产生专门的定制程序
集合框架:
JAVA语言为我们实现了用于包含其它对象的集合类或接口,并且这些类或接口之间有一些关系
体系结构: Collection
Collection:
SetèHashSet
ListèArrayList、LinkedList、Vector
MapèHashMap、HashTable
Set :
1. 不保证对象加入的顺序,即不按顺序保存è不能按下标读取
2. 且同一对象只能加入一次
HashSet
没有get()方法,因为Set不按顺序保存,所以不能按下标来取元素
在HashSet中用Iterator访问集合中的每一个元素
for(Iteratorit=hs.iterator();it.hasNext();){
Personp=(Person)it.next(); 判断是否还有下一个元素
p.getInfo();
List:
1. 保证对象加入的顺序,即能按顺序保存è可以按下标读取
2. 且同一对象可以加入多次
ArrayList
1.ArrayList类中封装了一个动态再分配的Object[]数组
2. 适合用于仅仅在集合的末尾加入元素/对象,此时效率高
LinkedList
1. 与ArrayList功能一样
2. 频繁的从列表中间位置添加和除去元素,而且只要顺序的访问列表元素,效率高于ArrayList
例子:
LinkedList ll=new LinkedList();
for(int i=0;i<200000;i++){
ll.add(0,"aaaa");
}
循环在0的位置上加入元素,原来在0 位置上的元素向后顺移
Vector
1. 与ArrayList功能一样
2. 效率低于ArrayList,但在多线程时比ArrayList安全
3. 同一个对象可以加多次
直接打出数组al中所有元素
publicstaticvoid main(String[] args) {
Person p1=new Person("p1",22);
Person p2=new Person("p2",22);
Person p5=new Person("p5",22);
Vector al=new Vector();
al.add(p1);
al.add(p2);
al.add(p5);
//同一个对象可以加多次
al.add(p5);
System.out.print(al);
}
直接打出al中所有元素
[p1:22, p2:22, p5:22, p5:22]
Map:
HashMap
见8_3日
HashTable
1. 与HashMap功能一样
2. 效率低于HashMap,但在多线程时比HashMap安全