美文网首页
Guava 中的迭代器工具类

Guava 中的迭代器工具类

作者: hemiao3000 | 来源:发表于2018-12-31 22:22 被阅读0次

本片内容收录在我的在线笔记 java-note-for-free 中。

笔记源文件在 gitee 中。

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

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 循环了,他的内部实现中帮我们做了循环,把循环体中的条件判断抽象出来了。

any 方法:判断迭代器中是否至少有一个满足条件

any ( ) 方法的参数和 all ( ) 方法一样,就不再具体举例了。

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

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

filter 方法:过滤/选中符合条件的项

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

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

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

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

transform 方法:对迭代器元素做转换

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

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

相关文章

  • Guava 中的迭代器工具类

    本片内容收录在我的在线笔记 java-note-for-free 中。 笔记源文件在 gitee 中。 Itera...

  • 设计模式之迭代器模式

    迭代器模式 迭代器接口 具体迭代器类 容器接口 具体容器类 客户端 个人理解 在java中的集合是迭代器模式的最好...

  • Guava工具类

    Guava工具类 简介 Guava 是Google基于java1.6开发的工具扩展库。 主要包括: annotat...

  • py3笔记27:迭代器

    1、迭代器 1.1 iter() 1.2 迭代器遍历 1.3 类作为迭代器使用 把类作为一个迭代器使用,需要类中实...

  • python迭代器、生成器和生成式

    迭代器 1.什么是迭代器(iter) 迭代器是python中的容器类的数据类型,可以同时存储多个数据。取迭代器中的...

  • [Guava] Google Guava 集合工具类

    Google Guava 集合工具类 Guava中的集合方法扩展 任何对JDK集合框架有经验的程序员都熟悉和喜欢j...

  • Java开源工具类:Guava

    Guava 介绍 Guava 是一款 Google 开源工具类,包含许多 Google 内部 Java 项目依赖的...

  • java集合分类

    java的集合主要分为List列表、Set集合、工具类(Iterator迭代器、Enumeration枚举类、Ar...

  • java迭代器

    与java迭代器相关的类的继承关系 ArrayList中的迭代器 其实获取ArrayList的迭代器是一个Iter...

  • 设计模式-迭代器(Iterator)模式

    主要角色 集合类 迭代器 职责 使用集合类中的迭代器,迭代数据,不停地获取下一个。 角色关系 课程类 课程集合接口...

网友评论

      本文标题:Guava 中的迭代器工具类

      本文链接:https://www.haomeiwen.com/subject/xzfglqtx.html