gpt4 book ai didi

java - 是否可以使用 Java Guava 将函数应用于集合?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:21 25 4
gpt4 key购买 nike

我想使用 Guava 将函数应用于集合、 map 等。

基本上,我需要分别调整 Table 的行和列的大小,以便所有行和列的大小相等,执行如下操作:

    Table<Integer, Integer, Cell> table = HashBasedTable.create();
Maps.transformValues(table.columnMap(), new ResizeFunction(BlockDimension.WIDTH));
Maps.transformValues(table.rowMap(), new ResizeFunction(BlockDimension.HEIGHT));

public interface Cell {
int getSize(BlockDimension dimension);
void setSize(BlockDimension dimension);
}

我已经知道 ResizeFunction 应该是什么了。但是,我需要应用它,而不仅仅是返回一个Collection

最佳答案

在 Guava 中,您不转换现有列表,而是使用 Iterables.transform 创建一个新列表:

final List<String> list = Arrays.asList("race", "box");
final List<String> transformed =
Lists.newArrayList(Iterables.transform(list, new Function<String, String>() {

@Override
public String apply(final String input) {
return new StringBuilder().append(input).append("car").toString();
}
}));
System.out.println(transformed);

输出:

[racecar, boxcar]

或者,如果您不需要 ListCollection 就可以,您可以使用转换后的实时 View :

final Collection<String> transformed =
Collections2.transform(list, new Function<String, String>() {

@Override
public String apply(final String input) {
return new StringBuilder().append(input).append("car").toString();
}
});

Collection 是底层的实时 View ,因此对 list 的更改将反射(reflect)在此 Collection 中。

关于java - 是否可以使用 Java Guava 将函数应用于集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7447002/

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