------- android培训、java培训、期待与您交流! ----------
1.集合类
为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式存在的,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的方式。
数组和集合类同是容器,有何不同?
数组虽然也可以存储对象,但长度是固定的,集合长度是可变的,数组可以存储基本数据类型,集合只能存储对象。
集合类的特点:
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
2.集合框架常用类
Collection
List(列表):可存放重复元素,元素存取是有序的
ArrayList:底层的数据结构使用的是数组结构,特点在于查询速度很快,修改很快,但是增删慢,线程不同步。
LinkList:底层使用的是链表数据结构。特点在与增删速度很快,查询速度很慢。
Vector:底层是数组数据结构。线程同步,被ArrayList取代。
Set(集):不可存放重复元素,元素存取是无序的
HashSet:底层数据结构是哈希表,线程不同步。保证元素唯一性的原理:判断元素的hashCode值是否相同,如果相同还会继续判断元素的equals方法是否为true
TreeSet:底层数据结构是二叉树,可以对set集合中的元素进行排序。保证元素唯一性的原理:compareTo方法return 0
3.Collection定义了集合框架的共性功能。
(1)添加:add(e);addAll(collection);
(2)删除:remove(e);removeAll(collection);clear()
(3)判断:contains(e);isEmpty()
(4)获取:iterator();size()
(5)获取交集:retainAll()
(6)集合变数组:toArray()
add方法参数类型是Object,以便接收任意类型的对象,集合存储的都是对象的引用(地址)
4.迭代器
迭代器就是集合取出元素的方式,会直接访问集合中的元素,所以将迭代器通过内部类饿形式来进行描述,通过容器的iterator()方法获取该内部类的对象。
<span style="white-space:pre"> </span>Iterator it = al.iterator();
while(it.hasNext())
{
sop("next:"+it.next());
}