Arrays.sort(array);
boolean hasDuplicates = false;
for (int i = 0; i < array.length-1; i++) {
if (array[i] == array[i + 1]) {
hasDuplicates = true;
break;
}
}
System.out.println(hasDuplicates);
inperformant? Höchstens um einen konstanten FaktorGanz spontan, ungetestet und inperformant
Ganz spontan, ungetestet und inperformant:
Java:boolean hasDuplicates = new Set(Arrays.asList(array)).size() != array.length;
Ups, das kommt vom vielen ScalaSet() kostet durchschnittlich O(n) wenn HashSet gemeint ist
Es funktioniert doch: Arrays erben zwar von Object, bei varargs werden die aber wieder anders behandeltDas viel größere Problem ist: Es funktioniert nicht Arrays.asList(array) liefert eine Liste, die einen int-array enthält. Einen int-arrays auf diese Weise zu einer Integer-List zu autoboxen funktioniert leider nicht.
import static java.util.Arrays.*;
import static java.lang.System.*;
import java.util.*;
public class _ {
public static void main(String[] args) {
String[] words={"xfchgvjb","cfhgv","cfhgvjb"};
List<String> stringList=asList(words);
out.println(stringList+"\t"+stringList.size());
List<?> arrayList = asList(((Object)words));
out.println(arrayList+"\t"+arrayList.size());
}
}
[xfchgvjb, cfhgv, cfhgvjb] 3
[[Ljava.lang.String;@1a46e30] 1
Aaach scheiße! ;( Dieses Detail hab ich glatt übersehen^^ Egal, dann muss man einfach Marco13 durch mich, und ~10 Jahre durch ~4 Jahre ersetzen, dann gilt mein gemeiner Spruch bezüglich der bescheuerten Arrays immer noch :bae:was marco wohl sagen wollte ist, dass das ganze nicht mit einem int[] klappt, sondern nur mit Integer[] ! ?! oder hab ich was falsch verstanden? (denn asList macht bei übergabe von einem int[] eine liste mit einem int[] element, demzufolge ist dann die größe auch immer 1)
Tja, da sieht man wieder mal wunderbar, dass nicht mal Leute die seit kA... 10 Jahren ununterbrochen Java programmieren immer noch keine Ahnung haben, wie sich diese völlig bescheuerten Array benehmen :lol:
speziell für SlaterB, der die vollständige Klammerung so sehr mag:bei der Schleife kann man gar evtl. vorher abbrechen, wenn bereits ein Paar gefunden
public static boolean containsDuplicates(int[] arr){
HashSet<Integer> set=new HashSet<Integer>();
for(Integer i:arr) if(!set.add(i)) return true;
return false;
}
Jaajaja, und trotzdem: Landei hat was seltsames geschrieben, ich hab's geschluckt, ARadauer fand's sogar ganz toll^^ Und es ist ja auch nicht grad so, als ob alle drei 0 Plan von der Javasyntax hätten Das ist ein Indiz dafür, dass es eher an der Sprache liegt, als an den MenschenDie varargs sind ja auch erst sehr spät dazugekommen (und manchmal ein bißchen hakelig speziell bei 'null' oder eben bei Arrays...)