java – 如何转置列表?
发布时间:2020-05-29 05:42:39 所属栏目:Java 来源:互联网
导读:我有一个以下的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.*;
|
我有一个以下的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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
