集合,是Java中提供的一种容器,能够用来存储多个数据。java
集合与数组的区别:数组的长度是固定不变的,集合的长度是可变的;数组中存储的是同一类型的元素,能够存储基本数据类型,也能够存储对象,而在集合中只能对象。数组
常见集合有:Vector集合(有序集合),ArrayList集合(有序集合),LinkedList集合(有序集合),TreeSet集合(无序集合,存入和取出的顺序可能不同),HashSet集合(无序集合,存入和取出的顺序可能不同),LinkedHashSet集合(有序集合)。框架
在学习集合中,应该掌握如何使用集合存储数据;会遍历集合,把数据取出来;掌握每种集合的特性。学习
是Vector集合,ArrayList集合,LinkedList集合的共性抽取,造成的父类(接口);指针
1).是有序的集合(存储和取出元素的顺序相同)。对象
2).容许存储重复的元素。索引
3).有索引,可使用普通的for循环遍历。接口
是TreeSet集合,HashSet集合的共性抽取,造成的父类(接口),LinkedHashSet集合(有序集合)是HashingSet的子类;rem
1).不容许存储重复的元素;it
2).没有索引(不能使用普通的for循环遍历)。
Collection接口:
定义的是全部单列集合中共性的方法;
全部的单列集合均可以使用共性的方法。
没有带索引的方法。
集合的学习方式:
1).学习顶层:学习顶层接口/抽象类中的共性方法,全部子类均可以使用。
2).使用底层:底层不是接口就是抽象类,没法建立对象使用,须要使用底层的子类建立对象使用。
1).public bollenan add(E e);用于把给定对象添加到当前集合中;
2).public clear();用于清除集合中的全部元素;
3).public boolean remove(E e);把给定的对象在当前集合中删除;
4).public boolean isEmpty();判断是否为空;
5).public int size();返回集合中元素的个数;
6).public boolean contains(E e);用于判断集合中是否含有给定的对象;
7).public Object[ ] toArray();把集合中的元素存储到数组中。
是对集合进行迭代的迭代器。
java.util.Iterator接口:迭代器(对集合进行遍历)。
1).boolean hasNext();
判断集合中是否还有下一个元素,如有则返回ture,没有则返回flase。
2).E next();
判断迭代的下一个元素(作两件事:先去除下一个元素,而后指针后移一位)。
注意:Iterator迭代器是接口,没法使用,须要使用Iterator接口的实现类的对象。
获取实现类的方法比较特殊,在Colleation接口中有一个方法叫iterator(),这个方法返回的就是迭代器的实现类对象。
Iterator<E> iterator()返回的就是在此Colleation的元素上进行迭代的迭代器。
1).使用集合中的方法iterator获取迭代器的实现类对象,使用Iterator接口接收(这是一个多态)。
2).使用Iterator接口中的方法hasNext判断是否还有下一个元素。
3).使用Iterator接口中的方法next取出集合中下一个元素。
注意:Iterator<E>接口是有泛型的,迭代器的泛型紧跟着集合走,集合是什么泛型,迭代器就是什么泛型。
当没有元素能够在取出时就抛出异常(NoSuchElementException)。
其底层使用的也是迭代器,使用for循环的格式,简化了迭代器的书写。
是Java1.5以后的特性。
Collection<E> extends Iterator<E>:全部的单列集合均可以使用加强for循环。
public interface Iterable<T>实现这个接口容许对象成为“foreach”语句的目标。
加强for循环是用来遍历集合和数组的。
格式:
for(集合或数组的数据类型 变量名:集合名或数组名){ S.out(变量名);}
注意:该for循环必须有被遍历的目标,目标只能是Collection或者都是数组,且该for循环仅做为遍历操做出现,不能在遍历的过程当中对元素进行增删操做。