1.Java中的集合框架体系
1.集合框架体系图如图所示:
2.Conllection接口:
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。
3.List接口:
List接口是一个有序的Collection,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的小标)来访问List中的元素,而且允许有相同的元素。
4.Set:
Set 具有与 Collection 完全一样的接口,只是行为上不同,Set 不保存重复的元素。
5.Map:
将唯一的键映射到值。
2.Conllection接口
1。成员方法:
//A:添加功能
boolean add(Object obj);//往集合中添加一个元素
boolean addAll(Collection c);//往集合中添加多个元素
//B:删除功能
void clear();//清空所有元素
boolean remove(Object o);//从集合中删除一个元素
boolean removeAll(Collection c);//从集合中删除另一个集合的元素
//C:判断功能
boolean contains(Object o);//判断集合中是否包含指定的元素
boolean containsAll(Collection c);//判断集合中是否包含另一个集合的元素
boolean isEmpty();//判断集合是否为空。
//D:交集功能
boolean retainAll(Collection c);
//E:迭代器(集合特有的遍历方式)
Iterator iterator();
//F:长度功能
int size();//返回集合中元素的个数
2.迭代器的使用
//创建迭代器对象
Conllection c = new ArrayList();
Iterator it = c.iterator();
//使用迭代器遍历
while ( it.hasNext() ) //hasNext(),判断是否有元素
{
//Object next()返回迭代的下一个元素,并移动指向的位置
Object o = (Object) it.next();
System.out.println(o);
}
3.List集合
1.List集合的元素有序(存储和取出顺序一致),元素可重复
2.特有功能
//A:添加功能
void add(int index,Object obj);//在指定的位置添加元素
//B:删除功能
Object remove(int index);通过指定的索引删除元素,并把删除的元素返回
//C:获取功能
get(int index);// 返回列表中指定位置的元素。
//D:替换功能
Object set(int index,Object obj);
4.集合的三种遍历
1. for循环遍历
List c = new ArrayList();
for(int i=0;i<c.size();i++){
Object o = (Object)c.get(i);
//对o进行Object对象化操作
}
2.增强for循环遍历
List l = new ArrayList();
for(Object o:l){
Object o2 = (Object)c.get(i);
//对o2进行Object对象化操作
}
3.迭代器循环遍历
List l = new ArrayList();
Iterator it = l.iterator();
//使用迭代器遍历
while ( it.hasNext() ) //hasNext(),判断是否有元素
{
Object o = (Object) it.next();
//对o进行Object对象化操作
}
5.ArrayList与LinkedList的相同点与不同点
相同点:有顺序的,元素可以重复
不同点:
(1)ArrayList特点:
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
(2)LinkedList特点:
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
6.泛型
1.泛型:是一种把明确数据类型的工作推迟到创建对象或者调用方法的时候才去明确类型的特殊类型
2.格式<数据类型>
默认情况下,是Object类型。
这里数据类型只能是引用类型。
3.好处
- 把运行时期问题提前到了编译时期
- 避免了强制类型转换
- 优化程序设计,解决了黄色警告线问题
4.在哪里用?
一般来说就是在集合中用的多。
看API,如果类或者接口或者方法出现了<>说明这里就有泛型