[英]Translate collection of collections in Java
假设我们有一个集合的集合,这导致一个表数据结构。
Collection<Collection<T>> table;
使用Java将“行”转换为“列”的最有效方法是?
编辑:
val_11 val_12 val_13 val_14 val_21 val_22 val_23 val_24 val_31 val_32 val_33 val_34 should be translated to val_11 val_21 val_31 val_12 val_22 val_32 val_13 val_23 val_33 val_14 val_24 val_34
假定集合的集合表示一个矩阵的Transpose方法:
public List<List<T>> transpose(Collection<Collection<T>> table) {
boolean init = false;
List<List<T>> result = new ArrayList<List<T>>();
for (Collection<T> row: table) {
if (!init) {
for(int i = 0; i < row.size(); i++)
result.add(new ArrayList<T>(table.size());
init = true;
}
for(int i = 0; i < row.size(); i++)
result.get(i).add(row.get(i));
}
return result;
}
如果要使用Guava Table而不是Collection<Collection<T>>
,则可以使用Tables.transpose创建具有切换的行键和列键的表视图。 当然,您需要处理行和列的键(可能是整数),而不是根本没有行或列键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.