Java 集合(一) Collection
Collection 接口
Collection 接口是 Set、Queue、List 的父接口。Collection 接口中定义了多种方法可供其子类进行实现,以实现数据操作。
接口中定义的常用方法
方法名称 | 说明 |
---|---|
public boolean add(E e) | 把给定的对象添加到当前集合中 |
public void clear() | 清空集合中所有的元素 |
public boolean remove(E e) | 把给定的对象在当前集合中删除 |
public boolean contains(Object obj) | 判断当前集合中是否包含给定的对象 |
public boolean isEmpty() | 判断当前集合是否为空 |
public int size() | 返回集合中元素的个数。 |
public Object[] toArray() | 把集合中的元素,存储到数组中 |
public Iterator iterator() | 返回一个包含集合中所有元素的迭代器 |
集合的三种遍历方式
① 使用迭代器遍历
- 使用迭代器 Iterator 遍历
Iterator 中提供的两个方法
返回值 | 方法名 | 功能 |
---|---|---|
boolean | hasNext() | 如果迭代器还有元素则返回 True |
E | next() | 返回迭代器的下一个元素 |
public class UseIterator {
public static void main(String[] args) {
// 创建一个集合对象
Collection<String> stuList = new ArrayList<>();
// 为对象添加元素(这里采用 Collections 中的方法直接一次性加入)
Collections.addAll(stuList, "Simon", "Alex", "Robbie");
// 创建一个迭代器 Iterator
Iterator<String> it = stuList.iterator();
// 遍历迭代器并输出集合元素
while (it.hasNext()){
System.out.println(it.next());
}
}
}
输出结果如下:
Simon
Alex
Robbie
② 使用 foreach 遍历
public class UseForeach {
public static void main(String[] args) {
// 创建一个集合对象
Collection<String> stuList = new ArrayList<>();
// 为对象添加元素(这里采用 Collections 中的方法直接一次性加入)
Collections.addAll(stuList, "Simon", "Alex", "Robbie");
// 使用 foreach 进行集合的循环遍历
for (String stu : stuList){
System.out.println(stu);
}
}
}
③ 使用 Lambda 表达式遍历
Collection 结合 Lambda 表达式遍历的 API
方法名称 | 说明 |
---|---|
default void forEach(Consumer<? super T> action): | 结合lambda遍历集合 |
public class UseLambda {
public static void main(String[] args) {
// 创建一个集合对象
Collection<String> stuList = new ArrayList<>();
// 为对象添加元素(这里采用 Collections 中的方法直接一次性加入)
Collections.addAll(stuList, "Simon", "Alex", "Robbie");
// 使用 Lambda 表达式遍历
stuList.forEach((s) -> System.out.println(s));
}
}
对比不用 Lambda 表达式的写法
public class UseLambda {
public static void main(String[] args) {
// 创建一个集合对象
Collection<String> stuList = new ArrayList<>();
// 为对象添加元素(这里采用 Collections 中的方法直接一次性加入)
Collections.addAll(stuList, "Simon", "Alex", "Robbie");
// 使用匿名内部类 foreach 方法
stuList.forEach(new Consumer<String>() {
@Override
public void accept(String s) {
System.out.println(s);
}
});
}
}