我有一个以下的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; } }
也可以看看