为了账号安全,请及时绑定邮箱和手机立即绑定

Guava集合:使用Iterators简化Iterator操作

标签:
Java

Iterators是Guava中对Iterator迭代器操作的帮助类,这个类提供了很多有用的方法来简化Iterator的操作。

1. 判断迭代器中的元素是否都满足某个条件 all 方法

        List<String> list = Lists.newArrayList("Apple","Pear","Peach","Banana");        Predicate<String> condition = new Predicate<String>() {            @Override            public boolean apply(String input) {                return ((String)input).startsWith("P");            }        };        boolean allIsStartsWithP = Iterators.all(list.iterator(), condition);        System.out.println("all result == " + allIsStartsWithP);

all方法的第一个参数是Iterator,第二个参数是Predicate<String>的实现,这个方法的意义是不需要我们自己去写while循环了,他的内部实现中帮我们做了循环,把循环体中的条件判断抽象出来了。

2. 通过any判断迭代器中是否有一个满足条件的记录,any方法的参数和all方法一样,就不再具体举例了

3. get方法获得迭代器中的第x个元素

        String secondElement = Iterators.get(list.iterator(), 1);

4. filter方法过滤符合条件的项

        Iterator<String> startPElements = Iterators.filter(list.iterator(), new Predicate<String>() {            @Override            public boolean apply(String input) {                return input.startsWith("P");            }        });

filter方法的第一个参数是源迭代器,第二个参数是Predicate的实现,其apply方法会返回当前元素是否符合条件。

5. find方法返回符合条件的第一个元素

        String length5Element = Iterators.find(list.iterator(), new Predicate<String>() {            @Override            public boolean apply(String input) {                return input.length() == 5;            }        });

6. transform方法,对迭代器元素做转换

        Iterator<Integer> countIterator = Iterators.transform(list.iterator(), new Function<String, Integer>() {            @Override            public Integer apply(String input) {                return input.length();            }        });

上面的例子中我们将字符串转换成了其长度,transform方法输出的是另外一个Iterator.

原文链接:http://outofmemory.cn/java/guava/Collections/Iterators

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消