簡體   English   中英

用Java翻譯集合的集合

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM