我正在嘗試查找二維數組中所有行都通用的可比較值。 對於這個值,我想找到所有行中存在的最小(> 0)重複次數。嘗試計算二維數組中的項目數
例如,字符串的2D陣列工作時:
{
{A, C, B},
{A, A, B},
{C, D, A}
}
存在於所有行的唯一值是「A」。一行中出現的最小數目是1,所以答案將是1 A
。
這裏是我的代碼:我想在一行中搜索重複項(或三胞胎等),確定給定行的計數並將其與其他行進行比較以確定最低的行數量。另外,也許有一個更優雅的方法?出於某種原因,它不工作(Collections是一個二維字符串數組):
public class CommonElements {
ArrayList<String> commonCollections = new ArrayList<String>();
private int comparisons = 0;
int i, j, k;
int count, lowestCount;
String previousString = "";
int row[];
String current;
public Comparable[] findCommonElements(Comparable[][] collections) {
Arrays.sort(collections[0]);
row = new int[collections[0].length];
for (i = 0; i < collections[0].length; i++) { // first row column selection
current = collections[0][i].toString();
lowestCount = 1;
for (j = 0; j < collections.length; j++) { // row
count = 0;
for (k = 0; k < collections[0].length; k++) { // column
if (current.equals(collections[j][k].toString())) { // if contains same string as first row column selected
count++;
System.out.print(count + "\n");
}
}
if (lowestCount < count) {
lowestCount = count;
}
}
}
System.out.print(lowestCount);
return collections[0];
}
public int getComparisons() {
return comparisons;
}
}