java.util.Collection<E>接口
集合:java
提供的一种容器,可以用来存储多个变量。
集合和数组:
(1) 数组长度固定,集合的长度是可变的;
(2) 数组只能存储同一类型的元素,可以存储基本数据类型;集合存储的都是对象,而且对象的类型可以不一致。
学习集合的目标:
(1) 会使用集合存储数据;
(2) 会遍历集合,把数据提取出来;
(3) 掌握每种集合的特性。
集合框架的学习方式:
(1) 学习顶层:学习顶层接口/抽象类中共性的方法,所有的子类都可以使用;
(2) 使用底层:底层不是接口就是抽象类,无法创建对象使用,需要底层的子类创建对象使用。
1. Collection<E>
是所有单列集合的父接口,定义了单列集合(List
和Set
)
通用的方法:
add(E e) boolean
clear() void
remove(E e) boolean
contains(E e) boolean
isEmpty() boolean
size() int
toArray() Object[]
2. Iterator
迭代器
Collection
接口中没有索引无法去遍历;这个接口实现类集合中存储的数据不同,存储和获取的方式不同。迭代:集合元素的通用获取方式,先判断集合中有没有元素,如果有就取出来;然后,再次判断集合内有没有元素,直到将元素内元素全部取出来为止。
Iterator
迭代器是个接口,不能直接创建对象。Collection
接口中有个方法iterator()
,这个方法返回的就是迭代器的实现类对象,并且会把指针(索引)指向集合的-1
索引。
常用方法:
hasNext() boolean
判断集合中还有没有下一个元素,有的话返回true;
next() E
返回迭代的下一个对象。
迭代器使用步骤:
(1) 使用Collection
中的方法iterator()
获取迭代器的实现类对象,使用Iterator
接口(多态);Iterator<E>
是带泛型的,类型和集合相同。
(2) 用Itrator
接口中的hasNext()
方法判断有没有下一个元素;
(3) next()
方法取出集合中的下一个元素。
格式:
while (it.hasNext){
E e = it.next();
System.out.println(e);
}
3.增强for
循环(for each
循环)
JDK1.5
专门用来遍历数组和集合
内部原理是个Iterator
迭代器,在遍历过程中,不能对集合的元素进行增删操作;用for
循环的格式,简化了迭代器的书写。
格式:
for(元素数据类型 变量:Collection集合or数组){
//操作代码
}