加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何转置列表?

发布时间:2020-12-14 16:20:58 所属栏目: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.uti
我有一个以下的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读