簡體   English   中英

如何在Java中對角遍歷2D數組

[英]How to loop thrrough a 2D array diagonally in java

我需要對角地通過兩種方式遍歷2D Java數組(前后)。 我一直在尋找可以幫助我完成此操作的代碼,但我一直找不到。 例如,如果我有

A B C D E 
E F G H I 
J K L M N 

我需要一個可以循環此數組並找到所有可能對角線的代碼,即AFL,EK,J CHN,EHL,DGK等

我的第一個想法,未經測試:

int offsetX = ...;
int offsetY = ...;
Object[] matrix = ...;

for (int i = 0; i + Math.max(offsetX, offsetY) < Math.min(matrix.length, matrix[0].length); ++i)
{
    Object o = matrix[offsetY + i][offsetX + i];
}

通常,在您的情況下,這兩個偏移量中只有一個可以為非零。 翻轉som標志並修改邊界檢查以創建其他對角線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM