java - 如何在 Java 中按对角排序顺序获取此列表

标签 java sorting diagonal

我只是想问一下如何才能实现获取二维表中的数据列表?表格按(行,列,数据)顺序...

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),右上单元格是(n,n)。然后,单元格的两个索引之和即可得出排序所需的对角线数。

如果两个单元格位于同一条对角线上,则列索引较低的单元格应排在前面。

最后,由于行索引从上到下递增,所以使用时应将行索引取反。

那就是:

int aDiag = a.getCol() - a.getRow();
int bDiag = b.getCol() - b.getRow();
return aDiag != bDiag ? aDiag - bDiag : a.getCol() - b.getCol();

也就是说,如果对角线不同,则仅使用对角线。如果它们相等,则使用列索引。

关于java - 如何在 Java 中按对角排序顺序获取此列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33059457/

相关文章:

iphone-sdk-3.0 - 如何通过对象图对托管对象的 NSMutableArray 进行排序

JAVA - 验证二维数组上的对角线

python - 如何制作对角矩阵的掩码,但从第二列开始?

python-3.x - 通过堆叠对角 K 矩阵来创建一个新的大矩阵

java - 使用 diffie-hellman 共享 key 继续加密

java - 用 eclipse 导出的可运行 jar 不起作用,在 eclipse 中它仍然有效

Java Socket OutputStream 未刷新

javascript - <thead> 元素中的数据表排序和过滤

java - 为什么java中不能连续输入两个字符串?

python - 如何按值(DESC)然后按键(ASC)对字典进行排序?