gpt4 book ai didi

java - 如何使用 guava FluentIterable 来简化 map 转换?

转载 作者:行者123 更新时间:2023-11-30 03:55:14 24 4
gpt4 key购买 nike

我经常使用Map<U,V>我转换和过滤以获得另一个 Map<U,V'> ,但是转换非常冗长,我看到 FluentIterable问题中的类(class)Guava: how to combine filter and transform? ,是否可以用它来简化以下内容?

public class GuavaTest {

public static class A{
int a;
int b;
int c;
public A(int a, int b, int c){
this.a=a; this.b=b; this.c=c;
}
}

public static void main(String[] args) {

//Example 2
final Map<String, A> map =Maps.newHashMap();

map.put("obj1",new A(1,1,1)); map.put("obj2",new A(1,2,1));
map.put("obj3",new A(1,3,1)); map.put("obj4",new A(1,4,1));

Function<A, Integer> function = new Function<A, Integer>() {
@Nullable
@Override
public Integer apply(@Nullable A input) {
return input.b;
}
};

Predicate<Integer> isPair = new Predicate<Integer>() {
@Override
public boolean apply(@Nullable Integer input) {
return input % 2 == 0;
}
};

//Can I use FluentIterable here ??
Map<String, Integer> stringIntegerMap = Maps.transformValues(map, function);
Map<String, Integer> stringIntegerMap1 = Maps.filterValues(stringIntegerMap, isPair);
}
}

最佳答案

没有。

FluentIterable 实际上并没有对映射做太多事情,并且当然不会缩短您的 FunctionPredicate 实现。唯一能缩短这些时间的是 Java 8 lambda,真的。

关于java - 如何使用 guava FluentIterable 来简化 map 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398262/

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