Ich habe ein zweidimensionales Array und muss die Arrays innerhalb des Arrays vergleichen, um Ähnlichkeiten zwischen ihnen zu finden. Wenn ein Element in einem Array gefunden wird, wird ein Element zur Zählung hinzugefügt. Graf verfolgt Ähnlichkeiten. Wenn die Zählung die höchste ist, dann ist diese die ähnlichste. Es wird dann Drucken leer ist am ähnlichsten zu leer.Suche nach Ähnlichkeit innerhalb eines 2-dimensionalen Arrays
double[][] ratingDB = {{4.0, 3.0, 3.0, 3.0, 3.0}, {3.0, 2.0, 3.0, 3.5, 3.0},
{4.0, 3.0, 4.0, 3.0, 3.0}, {3.0, 2.0, 3.0, 3.5, 3.0}, {3.0, 2.0, 3.0, 3.5, 3.0}};
String temp = null;
for (int i = 0; i < ratingDB.length; i++) {
for (int j = 1; j < ratingDB.length; j++) {
int maxCount = 0;
int count = 0;
for (int k = 0; k < ratingDB.length-1; k++) {
if (ratingDB[i][k] == ratingDB[j][k]) {
count++;
if (count >= maxCount) {
maxCount = count;
temp = "User_" + k;
}
}
}
}
System.out.println("User_" + i + " is most simlar to " + temp);
}
Dies ist die allgemeine Idee dahinter, was getan werden muss. Aber ich kämpfe mit dem richtigen Ergebnis und ich kann es nicht herausfinden. Das Ergebnis, das ich von diesem Code bin immer ist:
User_0 is most simlar to User_2
User_1 is most simlar to User_3
User_2 is most simlar to User_3
User_3 is most simlar to User_3
User_4 is most simlar to User_3
Und das Ergebnis ich brauche, ist:
user_0 most similar to user_2
user_1 most similar to user_4
user_2 most similar to user_0
user_3 most similar to user_4
user_4 most similar to user_3
nur durch ungerade es etwas sucht ... Dein Zählvariable sieht man immer und daher auch Ihre maxCount, denn kurz bevor Sie es erhöhen, Sie setze es auf 0. – CCC
@Jordan Ich habe die Position der Max- und Count-Variablen festgelegt. Jetzt werden sie zurückgesetzt, nachdem ein Array durchlaufen wurde. –