Hallo, ich wollte fragen, ob es in der Java-Standardbibliothek bereits eine vorgefertigte Klasse gibt, die eine Methode zum Vergleichen von Arrays bereitstellt oder ob man das generell immer selbst programmieren muss.
Das ist wieder so'n Brocken. Wenn alle Elemente unabhängig ihrer Reihenfolge genau einmal vorkommen sollen, dann zuerst sortieren und die Vergleichsmethode aufrufen.
Das ist wieder so'n Brocken. Wenn alle Elemente unabhängig ihrer Reihenfolge genau einmal vorkommen sollen, dann zuerst sortieren und die Vergleichsmethode aufrufen.
HashSet, ja. Ich bezweifle aber, dass es bedingt durch das Aufbauen der Set schneller wäre als schnelles Sortieren. Y' know what i mean?
LinkedHashSet wäre allerdings nicht schneller als HashSet und HashSet kann ohnehin nichts an der Reihenfolge der Elemente eines Arrays ändern (siehe Wertparameter).
Da allein etwas zum "Vergleichen" gesucht ist, würde meine Antwort genau wie die anderen auch der Frage entsprechen.
LinkedHashSet wäre allerdings nicht schneller als HashSet und HashSet kann ohnehin nichts an der Reihenfolge der Elemente eines Arrays ändern (siehe Wertparameter).
Da allein etwas zum "Vergleichen" gesucht ist, würde meine Antwort genau wie die anderen auch der Frage entsprechen.
Dann mache einen Test, der diese Aussage belegt. Aber bitteschön richtig, das heißt nicht nur einmaliges Zählen gleicher Elemente. n und n*logn nimmt sich hinsichtlich der realen Kosten nicht viel, insofern man noch in für Arrays praktikablen Größen denkt.
Vorgeschlagen war HashSet und LinkedHashSet. HashSet wird in der Praxis schneller sein. Die Begründung, LinkedHashSet zu verwendenden, weil diese im Gegensatz zu HashSet die Elemente des Arrays nicht verändern würde, ist falsch - BEide verändern die Elemente des Arrays nicht.
Wie dem auch sei, ich will mich nicht unnötigerweise streiten. Wenn langsame, mit HashSets ausgestattete Programme bevorzugt sind: bitteschön.
Es wäre übrigens gut zu wissen, welche Elemente die Arrays haben, ob die Reihenfolge beachtet werden soll oder nicht und ob doppelt vorkommende Elemente auch doppelt gezählt werden sollen.
Vorgeschlagen war HashSet und LinkedHashSet. HashSet wird in der Praxis schneller sein. Die Begründung, LinkedHashSet zu verwendenden, weil diese im Gegensatz zu HashSet die Elemente des Arrays nicht verändern würde, ist falsch - BEide verändern die Elemente des Arrays nicht.
Wenns dir um die Laufzeit geht: das kann man rein von der Frage des TOs her nicht beantworten, was nun am schnellsten ist. Aber generell schreiben wir doch lieber ein Bisschen schönes OOP statt zu wursteln