Ich habe eine Reihe von Arrays, die ich aus Daten zeichnen und letztlich zu einem endgültigen Array führen, das die gewünschten Informationen enthält. Das endgültige Array ist zweidimensional und besteht aus einer großen Anzahl eindimensionaler Arrays mit jeweils bis zu drei Einträgen.Mehrdimensionale Array-Manipulation - Java
int[][] realOcc = new int[result.length][3];
Die Art und Weise die Array-Daten hält, ist wie folgt: Die erste „Zelle“ einen Namen hält, der zweite ein ID-Bereich und der dritte ein Vorkommen Nummer - ein int mir zu sagen, wie oft dieser Name in aufkam Diese bestimmte Regions-ID.
Nach dem Sortieren des Arrays nach Namen mit einem Bubble Sort-Algorithmus sehe ich natürlich viele Einträge, die ich nicht dort sein möchte. Stellen Sie sich zum Beispiel einen Namen vor, der 3 Mal in einer bestimmten Regions-ID erscheint. Die Art, wie die Array-Einträge für diesen Namen wie wäre aussehen würde wie folgt:
Name1 regionID17 1
Name1 regionID17 2
Name1 regionID17 3
...
Name156 regionID1 1
Name168 regionID99 1
...
Was ich tun möchte, ist die überschüssigen Einträge aller wie in loszuwerden, die Einträge, die mit dem gleichen Namen und RegID entsprechen, und nur die maximale Häufigkeit für jeden Namen in einer bestimmten Region beibehalten. Also, das obige Beispiel nehmen, was ich möchte nach Manipulation des Arrays sehen wäre:
Name1 regionID17 3
...
Name156 regionID1 1
Name168 regionID99 1
...
Irgendwelche Ideen wäre sehr dankbar, da ich ziemlich bin ratlos .. Beachten Sie, dass, da die Daten i Ich bin ziemlich groß in der Zahl, ich muss auch meinen Code effizient halten.
Vergessen Sie nicht, HashCode zu implementieren, sonst funktioniert diese Methode nicht, da das HashSet das bereits eingefügte Objekt nicht korrekt findet. Auch für so etwas würde ich eine HashMap verwenden; Der Datensatz hat nur den Namen und die Region (und ist ansonsten wie in Ihrer Antwort), während die Ganzzahl die Anzahl ist. –
jprete
Danke ja, hashCode ist absolut wichtig. – dimo414
Vielen Dank für die Antwort, es hat mich in die richtige Richtung geschoben. –