Java集合框架中的Iterable接口怎么用

发布时间:2022-02-24 10:55:17 作者:iii
来源:亿速云 阅读:110

本篇内容主要讲解“Java集合框架中的Iterable接口怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java集合框架中的Iterable接口怎么用”吧!

一、写法1–循环

for (int i = 0, len = strings.size(); i < len; i++) {
    System.out.println(strings.get(i));
}

二、写法2–foreach循环

for (String var : strings) {
    System.out.println(var);
}

三、写法3–Iterator

Iterator iterator = strings.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

对于以上三种遍历方式,相信大家都很熟悉了吧。for循环可以理解为就是通过下标来获取元素,这个特点就和数组很相似。foreach主要对类似链表的解耦提供遍历支持,链表没有下标,如果使用foreach循环的话会大大降低性能。Iterator就是我们今天 要讲述的主角,它实际上就是foreach。

那既然Java为集合提供了这么几种遍历方式,那如果是普通对象或者是任何对象,那又该怎么遍历呢?

四、Iterable

Iterable是迭代器的意思,作用是为集合类提供for-each循环的支持。由于使用for循环需要通过位置获取元素,而这种获取方式仅有数组支持,其他许多数据结构,比如链表,只能通过查询获取数据,这会大大的降低效率。Iterable就可以让不同的集合类自己提供遍历的最佳方式。

我们来看看Iterable文档声明,其中有一句话是这么说的:

Implementing this interface allows an object to be the target of the "for-each loop" statement.

它的作用就是为Java对象提供foreach循环,其主要方法是返回一个Iterator对象:

Iterator<T> iterator();

意思就是,如果想让任意一个Java对象支持foreach,只要实现iterable接口,然后就可以通过Iterator iterator = strings.iterator()的方式,想集合那样遍历了。

五、Iterator

Iterator是foreach遍历的主体,我们来看看它是怎么实现的呢?

// 判断一个对象集合是否还有下一个元素
boolean hasNext();

// 获取下一个元素
E next();

// 删除最后一个元素。默认是不支持的,因为在很多情况下其结果不可预测,比如数据集合在此时被修改
default void remove(){...}

// 主要将每个元素作为参数发给action来执行特定操作
default void forEachRemaining(Consumer<? super E> action){...}

除此之外,Iterator还有一个子接口,施伟需要双向遍历数据时准备的,来看看它增加了那些方法吧

// 是否有前一个元素
boolean hasPrevious();

// 获取前一个元素
E previous();

// 获取下一个元素的位置
int nextIndex();

// 获取前一个元素的位置
int previousIndex();

// 添加一个元素
void add(E e);

// 替换当前元素值
void set(E e);

到此,相信大家对“Java集合框架中的Iterable接口怎么用”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. javascript中iterable常用遍历方法是什么
  2. JavaScript中的iterable有什么作用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java iterable

上一篇:Java输出HelloWorld的代码怎么写

下一篇:Java中的stack如何使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》