集合类的由来:
对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储
对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储
集合特点:
1、用于存储对象的容器
2、集合长度可变
3、不可以存储基本数据类型
1、用于存储对象的容器
2、集合长度可变
3、不可以存储基本数据类型
集合体系的顶层Collection接口
Collection接口
|--List:有序(存入和取出的顺序一致),元素都是索引,元素可以重复
|--Vector:内部是数组数据结构,是同步的。增删,查询都很慢(已几乎不用)
|--ArrayList:内部是数组数据结构,是不同步的。替代Vector。查询速度快
|--LinkedList:内部是链接列表数据结构,是不同步的。增删元素的速度很快。
|--Set:元素不能重复,是无序
Set接口中的方法和Collection一致
|--HashSet:内部数据结构是哈希表,是不同步的。
|--List:有序(存入和取出的顺序一致),元素都是索引,元素可以重复
|--Vector:内部是数组数据结构,是同步的。增删,查询都很慢(已几乎不用)
|--ArrayList:内部是数组数据结构,是不同步的。替代Vector。查询速度快
|--LinkedList:内部是链接列表数据结构,是不同步的。增删元素的速度很快。
|--Set:元素不能重复,是无序
Set接口中的方法和Collection一致
|--HashSet:内部数据结构是哈希表,是不同步的。
|--LinkedHashSet:内部数据结构是哈希表和链接列表,简单说就是有序的HashSet
|--TreeSet:内部数据结构是二叉树,是不同步的。
|--TreeSet:内部数据结构是二叉树,是不同步的。
常见方法:
1、添加
boolean add(E e);
boolean addAll(collection<? extends E> c);
2、删除
boolean remove(object o);
boolean removeAll(collection<?> c);//将两个集合中的相同元素从调用removeAll的集合中删除
void clear();//清空
3、判断
boolean contains(object o);
boolean containsAll(collection<?> c);//是否全部包含c集合中的元素
boolean isEmpty();//判断集合中是否有元素
4、获取
int size();
iterator<E> iterator();//迭代器,取出元素的方式
5、其他
boolean retainAll(collection<?> c);取交集
Object[] toArray();//将集合转成数组
1、添加
boolean add(E e);
boolean addAll(collection<? extends E> c);
2、删除
boolean remove(object o);
boolean removeAll(collection<?> c);//将两个集合中的相同元素从调用removeAll的集合中删除
void clear();//清空
3、判断
boolean contains(object o);
boolean containsAll(collection<?> c);//是否全部包含c集合中的元素
boolean isEmpty();//判断集合中是否有元素
4、获取
int size();
iterator<E> iterator();//迭代器,取出元素的方式
5、其他
boolean retainAll(collection<?> c);取交集
Object[] toArray();//将集合转成数组
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; public class CollectionDemo { public static void main(String[] args) {
Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
/*
* 注释快捷键:ctrl+/ 单行注释 shift+ctrl+/ 多行注释 alt+shift+j 文档注释
*/
/*
* Iterator it=coll.iterator(); while(it.hasNext()) {
* System.out.println(it.next()); }
*/
// 用for循环释放资源
for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
} Collection coll2 = new ArrayList();
coll2.add("abc1");
coll2.add("abc2");
coll2.add("abc5"); System.out.println("====================retainAll===============");
System.out.println(coll.retainAll(coll2));
for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
}
coll.clear();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4"); Collection coll3 = new ArrayList();
coll3.add("abc1");
coll3.add("abc3");
coll3.add("abc5"); System.out.println("====================removeAll===============");
System.out.println(coll.removeAll(coll3)); for (Iterator it = coll.iterator(); it.hasNext();) {
System.out.println(it.next());
}
}
}
结果: