java按照指定列分组数据

String[] row0 = { "0", "1", "2" };
    String[] row1 = { "1", "1", "2" };
    String[] row2 = { "1", "1", "2" };
    String[] row3 = { "1", "1", "2" };
    String[] row4 = { "2", "1", "2" };
    String[] row5 = { "2", "1", "2" };
    String[] row6 = { "3", "1", "2" };
    String[][] data = new String[][] { row0, row1, row2, row3, row4, row5,
            row6 };
    List<String[][]> groupList = groupByName(data, 0);
    print2ArrayList(groupList);
    // 预期
    // listIndex0:String[][] _0={{row0}};
    // listIndex1:String[][] _0={{row1,row2,row3}};
    // listIndex2:String[][] _0={{row4,row5}};
    // listIndex3:String[][] _0={{row6}};

}
/**
 * 按照指定列分组数据
 * 
 * @param data 要分组的数据
 * @param col 列索引
 * @return 分组后的数据
 */
public static List<String[][]> groupByName(String[][] data, int col) {

    return null;
}

/**
 * 打印二维列表数组
 * 
 * @param groupList
 */
public static void print2ArrayList(List<String[][]> groupList) {

}
这两个方法怎么写

public static void print2ArrayList(List groupList) {
for(int i=0;i<groupList.size();i++){
for(int j=0;j<groupList.get(i).length;j++){
for(int k=0;k<groupList.get(i)[j].length;k++){
System.out.print(groupList.get(i)[j][k]);
}
}
}
}