gpt4 book ai didi

java - Guava:如何结合过滤和变换?

转载 作者:IT老高 更新时间:2023-10-28 20:34:58 26 4
gpt4 key购买 nike

我有一个字符串集合,我想将其转换为一个字符串集合,全部为空或 null 字符串被删除,所有其他字符串都被修剪。

我可以分两步完成:

final List<String> tokens =
Lists.newArrayList(" some ", null, "stuff\t", "", " \nhere");
final Collection<String> filtered =
Collections2.filter(
Collections2.transform(tokens, new Function<String, String>(){

// This is a substitute for StringUtils.stripToEmpty()
// why doesn't Guava have stuff like that?
@Override
public String apply(final String input){
return input == null ? "" : input.trim();
}
}), new Predicate<String>(){

@Override
public boolean apply(final String input){
return !Strings.isNullOrEmpty(input);
}

});
System.out.println(filtered);
// Output, as desired: [some, stuff, here]

但是有没有一种 Guava 方法可以将这两个 Action 合并为一个步骤?

最佳答案

即将发布的最新版本(12.0)的Guava中,将会有一个名为FluentIterable的类。 .这个类为这类东西提供了缺少的 fluent API。

使用 FluentIterable,您应该能够执行以下操作:

final Collection<String> filtered = FluentIterable
.from(tokens)
.transform(new Function<String, String>() {
@Override
public String apply(final String input) {
return input == null ? "" : input.trim();
}
})
.filter(new Predicate<String>() {
@Override
public boolean apply(final String input) {
return !Strings.isNullOrEmpty(input);
}
})
.toImmutableList();

关于java - Guava:如何结合过滤和变换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4277734/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com