当前位置: 首页 > 面试题库 >

如何转置列表?

赏高格
2023-03-14
问题内容

我有以下ArrayList,

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

我想这样转换

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

我对这种方法感到困惑。任何提示将不胜感激。

谢谢。


问题答案:

这称为换位。以下代码片段可以满足您的需求:

import java.util.*;
public class ListTranspose {
    public static void main(String[] args) {
        Object[][] data = {
            { "Title", "Data1", "Data2", "Data3" },
            { "A", 2, 3, 4 },
            { "B", 3, 5, 7 },
        };
        List<List<Object>> table = new ArrayList<List<Object>>();
        for (Object[] row : data) {
            table.add(Arrays.asList(row));
        }
        System.out.println(table); //  [[Title, Data1, Data2, Data3],
                                   //   [A, 2, 3, 4],
                                   //   [B, 3, 5, 7]]"
        table = transpose(table);
        System.out.println(table); //  [[Title, A, B],
                                   //   [Data1, 2, 3],
                                   //   [Data2, 3, 5],
                                   //   [Data3, 4, 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;
    }
}

也可以看看

  • 维基百科/转置


 类似资料:
  • 问题内容: 我想转置HTML表格中的行和列,即将行作为列,将列作为行。 我可以用什么方式做到这一点? 范例: 如 问题答案: HTML: js:

  • 问题内容: 这是我当前的mysql表的样子: 现在,我想返回基于星期几进行分组的结果集,如下所示: 这是我当前的查询。但它只返回每天的第一打。 有人可以帮我弄这个吗?谢谢迈克 问题答案: SQLFiddle演示 输出值

  • 问题内容: 我不确定是否可以使用内置的PIG脚本完成此操作,或者我需要编写UDF代码。但实际上我有一个表,我只想在其中转置数据。 简单地说,给出: 我最终会得到: 关于如何实现此目标的任何建议? 问题答案: 用Pig不可能做到这一点,也没有任何意义。请记住,关系是一包元组,根据定义,不保证包中的元组具有任何特定顺序。您可以从开始 但是从Pig的角度来看,这与 这意味着“转置”定义不正确。以这种方式

  • 我正在将SQL查询的结果写入Excel工作表,并尝试将行转换为列,但似乎无法让Pandas移动;Excel似乎存在某种难题。我看过: 如何在数据帧中切换列和行 在groupby之后,如何将dataframe中的行值转换为Python中的列标签? 在Python中将列转换为行 Python:将行转换为列标题 似乎都不起作用。 Excel表格: 请求:

  • 问题内容: 如何将String [](数组)转换为Collection,例如ArrayList或HashSet? 问题答案: Arrays.asList()可以在这里解决问题。 要转换为Set,您可以执行以下操作

  • 问题内容: 我有类似下表的内容: 我需要一个查询,它会给我这样的结果: 请注意,FieldName中的值不限于用户名,密码和电子邮件地址。它们可以是用户定义的任何东西。 有没有办法在SQL中做到这一点? 问题答案: MySQL不支持ANSI PIVOT / UNPIVOT语法,因此您可以使用: 如您所见,需要按值定义CASE语句。要使其动态化,您需要使用MySQL的Prepared Stateme