集合类
定义:用于存储对象最常用的一种方式
集合类与数组的比较:
数组和集合类同是容器,数组虽然也可以存储对象,但是长度固定,而集合类为可变长度,数组可存储基本数据类型,集合只存放对象,而且可以存放不同类型的对象。
集合框架中的常用接口
Collection接口有两个子接口:
List(列表) Set(集)
List:可存放重复元素,元素存放是有序的
Set:不可存放重复元素,元素存放是无序的。
List接口中常用类
Vector:线程安全,但速度慢,已被ArrayList类所替代
ArrayList:线程不安全,查询速度快
LinkedList:链表结构,增删速度快
常用方法
add()方法的参数类型是object,便于任何类型的对象
remove( )
clear( )
contains( ) 判断元素是否存在
empty( ) 判断是否为空
retainAll( ) 取交集
removeAll( )
特有方法
增
add(index,elemt);
addAll(index,Collection)
删
remove( index );
改
set( index , elemt );
查
get(index )
subList(From,To)
ListIteator();
取List集合中元素的方式
get(int index):通过角标获取元素
iterator( ):通过迭代方法获取迭代哭的对象
迭代
迭代是取出元素的一种方式
因为Collection中有iterator( )方法,所以每一个子类集合对象都具备的迭代器。
用法:
for(Iterator iter = iterator(); iter.hasNext(); ){
iter.next();
}
或
Iterator iter = 集合类.iterator();
while(iter.hasNex){ iter.next(); }
迭代注意事项
迭代器在Collection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。
迭代器的next()方法是自动向下取元素,要避免出现NoSuchElementException。
迭代器的next()方法返回值类型是Object,所以要记得类型转换。
LinkedList特有方法
addFirst() getFirst() removeFirst()
addLast() getLast() removeLast()
JDK1.6以后出现的替代方法
offerFirst() peekFirst() pollFirst()
offerLast() peekLast() pollLast()