сделать класс Cell с полями row, col, block, value; затем создайте матрицу класса с полями cell = cell [], заполните матрицу.
сделайте проверку класса с помощью основного метода Matrix matrix = init (int [] []) и check (matrix), где init (·) заполняет матрицу.
логическое ok = check (матрица), где check (Matrix) делает, если (! rowcheck ()) возвращает false; if (! colcheck ()) возвращает false и т. д .;
создайте несколько методов, таких как getrows (), getrow (r) и для (Cell cell: matrix.values ()), чтобы отфильтровать те, которые вы хотите.
немного утомительно, но я сделал это, и оно твердое, как камень.
Как примечание, фильтрация по матрице может показаться глупой, но компьютеры работают быстро, и проблема в O (1), так как это 9x9.