`
小网客
  • 浏览: 1243626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Iterator按照指定格式转化成List

 
阅读更多

需求场景:

       已经知道了Iterator<T>,然后打算通过Iterator进行简单处理后变成List<?>,这种需求还是比较常见的,MR中最为常见。

方案:

第一种方式:

直接遍历迭代获取到T然后经过业务逻辑处理之后封装成?然后放入指定的List中去

第二种方式:

采用org.apache.commons.collections.CollectionUtils.collect进行转换,需要自己实现Transformer,也提供了一些常见的实现。

实现:

依赖jar:

commons-collections 2.6
commons-lang 3.2.1

 构造数据:

List<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
	list.add(RandomStringUtils.random(10, "abc"));
}

 转换操作:

CollectionUtils.collect(list.iterator(), TransformerUtils.nopTransformer())

 TransformerUtils提供的Transformer实现:

org.apache.commons.collections.functors.ChainedTransformer;
org.apache.commons.collections.functors.CloneTransformer;
org.apache.commons.collections.functors.ClosureTransformer;
org.apache.commons.collections.functors.ConstantTransformer;
org.apache.commons.collections.functors.EqualPredicate;
org.apache.commons.collections.functors.ExceptionTransformer;
org.apache.commons.collections.functors.FactoryTransformer;
org.apache.commons.collections.functors.InstantiateTransformer;
org.apache.commons.collections.functors.InvokerTransformer;
org.apache.commons.collections.functors.MapTransformer;
org.apache.commons.collections.functors.NOPTransformer;
org.apache.commons.collections.functors.PredicateTransformer;
org.apache.commons.collections.functors.StringValueTransformer;
org.apache.commons.collections.functors.SwitchTransformer;

 

0
6
分享到:
评论

相关推荐

    JAVA中的Iterator的用法

    Iterator&lt;String&gt; iterator = list.iterator(); ``` ##### 2. 遍历集合 一旦有了`Iterator`对象,就可以通过调用`hasNext()`和`next()`方法来遍历集合。示例代码如下: ```java while (iterator.hasNext()) { ...

    Collection、Map、List、Set、Iterator

    ### Collection、Map、List、Set、Iterator 的详细解析 #### Collection 接口 - **定义**:`Collection` 是 Java 集合框架的核心接口之一,几乎所有其他集合接口都直接或间接继承自它。它提供了对集合进行增删查改...

    把excel导入List中行也为list

    这个示例程序会读取指定路径的Excel文件,并将第一张工作表中的数据转换为`List&lt;List&lt;String&gt;&gt;`结构,同时打印出来。注意替换`"path_to_your_excel_file.xlsx"`为实际Excel文件的路径。 通过这种方式,你可以方便地...

    Scala的List类方法整合

    val iterator = list.iterator while (iterator.hasNext) { println(iterator.next()) } // 输出: // 1 // 2 // 3 ``` #### 26. `def last: A` 此方法返回列表的最后一个元素。 **示例代码:** ```scala val list ...

    iterator.zip

    Iterator(迭代器)是STL中的核心概念,它扮演着链接用户代码与容器(如vector、list、set等)的角色。`iterator.zip`中的内容很可能是关于STL迭代器使用的示例代码或教程。 迭代器在STL中被设计为一种通用的接口,...

    list常用方法

    Iterator&lt;E&gt; iterator = list.iterator(); ``` `iterator()`方法返回一个可以在列表元素上进行迭代的迭代器。 #### 13. 转换为字符串 ```java String str = list.toString(); ``` `toString()`方法返回表示此列表的...

    java中List的用法和实例详解

    Iterator&lt;String&gt; iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } ``` 3. 使用传统的for循环: ```java for (int i = 0; i &lt; list.size(); i++) { System.out...

    有效使用Iterator

    在C++编程中,`Iterator`是访问容器(如`vector`、`list`、`set`等)中元素的主要接口。`Iterator`提供了一种方式来遍历容器的元素序列,而无需暴露容器的内部结构。以下是使用`Iterator`的一些关键知识点: 1. **...

    10个Java经典的List面试题!.zip

    add(int index, E element)是List接口的方法,用于在指定位置插入元素,ArrayList会移动后续元素,LinkedList则只需改变相邻节点的链接。 4. **remove()方法** - remove()方法有多种形式。List接口中的remove(int ...

    java.util.List接口的类及用法

    Java中的`java.util.List`接口是集合框架的重要组成部分,它扩展了`Collection`接口,并引入了一些特定于列表的特性,如有序性、可重复性以及对元素的索引访问。这篇博客将深入探讨`List`接口及其常用实现类,如`...

    集合类(二):List集合

    在Java编程语言中,集合框架是处理对象集合的重要工具,其中List集合是广泛使用的接口之一。List接口继承自Collection接口,它定义了一种有序的、允许重复元素的集合。本篇我们将深入探讨List集合,包括其特点、常用...

    JavaSE专题-List集合.doc

    - 集合类支持泛型,这意味着在创建集合实例时可以指定元素类型,从而在编译时提供类型检查,避免了类型转换异常,提高了代码的安全性。 7. **比较器与迭代器** - Comparator接口用于自定义对象间的比较规则,可以...

    Java中对List集合的常用操作详解

    - 使用`toString()`方法可以将List转换为字符串,显示元素之间的逗号分隔格式。 11. **将集合转换为数组** - 通过`toArray(T[] array)`方法,可以将List转换为指定类型的数组,如`String[] array = list.toArray...

    List接口和Map接口

    泛型允许开发者在声明集合时指定具体的类型,这样可以避免运行时的类型转换错误,并提高程序的安全性和可读性。例如,可以声明一个`List&lt;String&gt;`,这意味着列表只能存储字符串类型的元素。 #### 七、总结 Java...

    How to wrap an MFC collection into an STL compliant iterator

    在C++编程中,STL(Standard Template Library,标准模板库)是不可或缺的一部分,它提供了高效的数据结构(如vector、list、set等)和算法。然而,在处理MFC(Microsoft Foundation Classes)库中的集合类时,由于...

    JAVA高级技术[归纳].pdf

    Java 高级编程技术涉及了多个关键知识点,包括但不限于数据结构转换、集合操作、文件读写、数据库交互以及数据格式转换。以下是对这些知识点的详细解释: 1. **数据结构转换与迭代**: - 在Java中,可以使用`...

    Java软件开发实战 Java基础与案例开发详解 12-5 集合类的同步问题 共8页.pdf

    Iterator&lt;String&gt; iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } } } ``` - **注意事项**:即使使用了同步集合,迭代器仍然需要在同步块内使用。 3. ...

    Java集合排序及java集合类详解(Collection、List、Map、Set)讲解.pdf

    对于List,可以使用Collections.sort()方法进行排序,对于Map,通常需要转换成List后再排序。例如,对于TreeMap,其内部已经按照键的自然顺序或比较器排序。 总结,Java集合框架提供了丰富的数据结构和操作,理解并...

    JSON后台相互转换.pdf

    在 getList4Json() 方法中,我们使用 JSONArray.fromObject() 方法将 json 对象集合表达式转换为 JSONArray 对象,然后使用 Iterator 对象来遍历 JSONArray 对象的元素,并将其存储到 List 对象中。 本资源提供了...

Global site tag (gtag.js) - Google Analytics