[英]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.