java – 如何转置列表?

前端之家收集整理的这篇文章主要介绍了java – 如何转置列表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个以下的ArrayList,
[Title,Data1,Data2,Data3]
[A,2,3,4]
[B,5,7]

我想像这样转换这个,

[Title,A,B]
[Data1,3]
[Data2,5]
[Data3,4,7]

我对这种做法感到困惑.任何暗示都将不胜感激.

谢谢.

解决方法

这被称为转置.以下代码段执行您需要的:
import java.util.*;
public class ListTranspose {
    public static void main(String[] args) {
        Object[][] data = {
            { "Title","Data1","Data2","Data3" },{ "A",4 },{ "B",7 },};
        List<List<Object>> table = new ArrayList<List<Object>>();
        for (Object[] row : data) {
            table.add(Arrays.asList(row));
        }
        System.out.println(table); //  [[Title,Data3],//   [A,4],//   [B,7]]"
        table = transpose(table);
        System.out.println(table); //  [[Title,B],//   [Data1,3],//   [Data2,5],//   [Data3,7]]
    }
    static <T> List<List<T>> transpose(List<List<T>> table) {
        List<List<T>> ret = new ArrayList<List<T>>();
        final int N = table.get(0).size();
        for (int i = 0; i < N; i++) {
            List<T> col = new ArrayList<T>();
            for (List<T> row : table) {
                col.add(row.get(i));
            }
            ret.add(col);
        }
        return ret;
    }
}

也可以看看

> Wikipedia/Transpose

原文链接:https://www.f2er.com/java/125756.html

猜你在找的Java相关文章