CollectionUtils中的Transformer和Closure使用方法
时间: 2024-02-03 18:15:17 浏览: 77
基于Transformer-XL的中文文本生成设计源码
在Apache Commons Collections框架中,Transformer和Closure是两个常用的接口,用于对集合进行转换和处理操作。
Transformer接口定义了一个apply方法,可以将一个对象转换为另一个对象。示例代码如下:
```java
Transformer<String, Integer> transformer = new Transformer<String, Integer>() {
@Override
public Integer transform(String input) {
return input.length();
}
};
List<String> list = Arrays.asList("apple", "banana", "orange");
List<Integer> lengths = (List<Integer>) CollectionUtils.collect(list, transformer);
System.out.println(lengths); // 输出 [5, 6, 6]
```
上述代码中,我们创建了一个Transformer对象,将字符串转换为字符串长度。然后使用CollectionUtils.collect方法对集合进行转换。
Closure接口定义了一个execute方法,可以对集合中的每个元素进行处理。示例代码如下:
```java
Closure<String> closure = new Closure<String>() {
@Override
public void execute(String input) {
System.out.println("hello, " + input);
}
};
List<String> list = Arrays.asList("Tom", "Jerry", "Lucy");
CollectionUtils.forAllDo(list, closure);
```
上述代码中,我们创建了一个Closure对象,将每个字符串输出一句话。然后使用CollectionUtils.forAllDo方法对集合进行处理。
需要注意的是,Transformer和Closure都是函数式接口,可以使用Lambda表达式或方法引用简化代码。
阅读全文