我只想问一下如何在2D表格中获取数据列表?表是(行,列,数据)顺序...
Table Sample 因此,如果您要按照对角顺序排列该表中的数据,您将获得类似 [(4,1,B),(4,2,B),(5,3,列表中的A),(1,1,A),(2,2,B),(2,3,A),(2,4,B),(1,5,A)]
答案 0 :(得分:0)
假设左下方的单元格是(0,0),而右上方的单元格是(n,n)。然后,单元格的两个索引之和为您提供排序所需的对角线数。
如果两个单元格位于同一对角线上,那么列索引较低的单元格应首先出现。
最后,因为行索引从上到下增加,所以在使用时应该否定行索引。
那将是:
int aDiag = a.getCol() - a.getRow();
int bDiag = b.getCol() - b.getRow();
return aDiag != bDiag ? aDiag - bDiag : a.getCol() - b.getCol();
那就是 - 如果对角线不同,只使用对角线。如果它们相等,请使用列索引。