Collection接口(常用方法、遍历方式)

Collection 接口介绍

Collection 是单列集合的顶层接口,它的功能是全部单列集合都可以继承使用的。Collection 是一个接口,不能直接创建它的对象,学习它的方法时,可创建其实现类(如 ArrayList)的对象。

Collection 有两个重要的子接口:List 和 Set。List 系列集合添加的元素有序、可重复、有索引(有序指存和取的内容顺序一样);Set 系列集合添加的元素无序、不重复、无索引


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()返回集合中元素的个数(集合的长度)

Collection 元素操作示例

// 目的:为了学习Collection接口里面的方法
// 自己在做一些练习的时候,还是按照之前的方式去创建对象。
Collection<String> coll = new ArrayList<>();
// 1. 添加元素
// 细节1:如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的。
// 细节2:如果我们要往Set系列集合中添加数据,如果当前要添加元素不存在,方法返回true,表示添加成功。
// 如果当前要添加的元素已经存在,方法返回false,表示添加失败。
// 因为Set系列的集合不允许重复。
coll.add("aaa");
coll.add("bbb");
coll.add("ccc");
System.out.println(coll);
// 2. 清空
// coll.clear();
// 3. 删除
// 细节1:因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。只能通过元素的对象进行删除。
// 细节2:方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false
// 如果要删除的元素不存在,就会删除失败。
System.out.println(coll.remove("aaa"));
System.out.println(coll);
// 4. 判断元素是否包含
boolean result = coll.contains("aaa");
System.out.println(result);
// 5. 判断集合是否为空
boolean result2 = coll.isEmpty();
System.out.println(result2); // false
// 6. 获取集合的长度
int size = coll.size();
System.out.println(size); // 2

Collection 遍历方式

迭代器遍历

迭代器在 Java 中的类是 Iterator,是集合专用的遍历方式。

  • Collection 集合获取迭代器
    | 方法名称 | 说明 |
    |---------------------|--------------------------------------|
    Iterator<E> iterator() | 返回迭代器对象,默认指向当前集合的 0 索引 |
  • Iterator 中常用方法
    | 方法名称 | 说明 |
    |---------------------|--------------------------------------|
    boolean hasNext() | 判断当前位置是否有元素,有元素返回 true,没有元素返回 false |
    E next() | 获取当前位置的元素,并将迭代器对象移向下一个位置。|
Iterator<String> it = coll.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}

细节注意点

  1. 报错 NoSuchElementException
  2. 迭代器遍历完毕,指针不会复位。
  3. 循环中只能用一次 next 方法。
  4. 迭代器遍历,不能用集合的方法进行增加或者删除;若要删除,可用迭代器提供的 remove 方法,无增加方法。
增强 for 遍历

底层原理是一个 Iterator 迭代器,只有单列集合和数组才能用增强 for 进行遍历。

// 注意点:
// s 其实就是一个第三方变量,在循环的过程中依次表示集合中的每一个数据
for (String s : coll) {
System.out.println(s);
}

特点:修改增强 for 中的第三方变量,不会改变集合中原本的数据。

Lambda 表达式遍历
方法名称说明
default void forEach(Consumer<? super T> action)结合 Lambda 遍历集合
// 利用匿名内部类的形式
coll.forEach(new Consumer<String>() {
@Override
// s 依次表示集合中的每一个数据
public void accept(String s) {
System.out.println(s);
}
});
// Lambda 表达式
coll.forEach(s -> System.out.println(s));

底层原理:会自己遍历集合,依次得到每一个元素,把得到的每一个元素,传递给 accept 方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值