我想使用 Guava 将函数应用于集合、地图等。
基本上,我需要调整 a 的行和列的大小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
应该。但是,我需要apply它,不仅仅是返回一个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);
Output:
[赛车、棚车]
或者,如果您不需要List
and a Collection
就可以了,你可以使用转换后的实时视图:
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();
}
});
This Collection
是底层视图的实时视图,因此更改为list
都会体现在这个Collection
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)