Collection接口与迭代器-0108

Collection接口

在Java类库中,集合类的基本接口是Collection接口。
这个接口有两个基本方法:

public interface Collection<E> {
	boolean add(E element);
	Iterator<E> iterator();
}

add方法用于向集合中添加元素,添加成功返回true,添加失败则返回false。
iterator方法用于返回一个实现了Iterrator接口的对象。可以使用这个迭代器依次访问集合中的对象。

迭代器

Iterator接口包含了4个方法。

public interface Iterator<E> {
	E next();
	boolean hasNext();
	void remove();
	default void forEachRemaining(Consumer<? super E> action)
}

其中前两个方法不用赘述,例如:

for (String element : c) {
	//do something with element
}

也可以不写循环,而是调用forEachRemaining方法构造一个lambda表达式,将对迭代器的每一个元素调用这个lambda表达式,直至再也没有元素为止。

iterator.forEachRemaing(element -> do something with element)

Java集合中的迭代器与其它类库中的迭代器在概念上有重要区别:
例如在C++类库中,迭代器是根据数组索引建模的;而在Java中,查找与为止变更紧密耦合。
查找一个元素的唯一方法是调用next(),而在执行查找操作同时,迭代器位置会向前移动。
remove()方法将会删除上次调用next()方法时返回的元素。
另外,如果要remove一个元素,则必须先调用next();
以下是不合法的:

it.remove();
it.remove();

而应该是:

it.next();
it.remove();
it.next();
it.remove();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值