Выписание строк в двумерном массиве, которые состоят из одинаковых цифр - Java
Всем привет,хочу выписывать в консоле строки в матрице которые являются анаграммами,
то есть, состоят из одинаковых цифр, но не обязательно в одном и том же порядке,
и вот что я придумал, для начала я хочу отсортировать массив, что бы даже если строки содержат одинаковые элементы, но в разном порядке то теперь у меня после сортировки строк, они будут идентичны, и я теперь имею посортированую матрицу, и дальше мне нужно выписать только идентичные строки (пример двумерного массива 3х3 {{1,2,3},{2,1,3},{1,1,1}},
что я хочу вывести на экран в итоге - {{1,2,3}, {2,1,3}}), не знаю как это сделать, вот мой код, то что я имею на данный момент, буду рад за помощь:
public class Macierz {
private int n;
private int m;
private int[][] macierz;
private int max = 0;
private int min = 0;
public Macierz(int n, int m) {
macierz = new int[n][m];
}
public int random (int max, int min) {
this.max = max;
this.min = min;
max -= min;
return (int) (Math.random() * max) + min;
}
public void wypelnij () {
for (int i = 0; i < macierz.length; i++) {
for (int j = 0; j < macierz[i].length; j++) {
macierz[i][j] = random(-1, 1);
}
}
}
public void wypisz() {
for (int i = 0; i < macierz.length; i++) {
for (int j = 0; j < macierz[i].length; j++) {
System.out.print(macierz[i][j] + "\t");
}
System.out.print("\n");
}
}
public void wypiszWierszy () {
// сортировка строк матрицы
int b;
for (int i = 0; i < macierz.length; i++) {
for (int j = 0; j < macierz.length; j++) {
for (int k = j + 1; k < macierz.length; k++) {
if (macierz[i][j] > macierz[i][k]) {
b = macierz[i][j];
macierz[i][j] = macierz[i][k];
macierz[i][k] = b;
}
}
}
}
}
}
Ответы (1 шт):
Ну как вариант: реализовать метод, который сравнивает 2 одномерных массива на равенство. Затем пройтись по двумерному массиву как по одномерному состоящему из одномерных (строк в двумерном) по i = 0..n-1, j = i+1 ..n-1 , сравнивая массивы с индексами i и j этим самым методом. Если метод возвращает true, то выводим на консоль. Про метод сравнения массивов, сначала оба сортируем Arrays.sort(...), а потом сравниваем Arrays.equals(...), тоже как вариант.