Array abfragen ob er leer ist - Java?
Ich soll den Teil des Merge-Sortierungsverfahrens programmieren, der die sortierten (Teil-)Arrays wieder zusammenfügt. Ich möchte nun abfragen, ob mein (Teil-)Array leer ist, um dann weitere Anweisungen zu geben, weiß aber nicht wie ich das programmieren soll.
Kann mir da einer mit einem Befehl oder Ausdrucksweise weiterhelfen. Danke!
2 Antworten
Probiere mal folgenden Code (ist nicht getestet oder so, einfach schnell runtergeschrieben):
public static int[] merge(int[] A, int[] B)
{
// O = output array
int[] O = new int[A.length + B.length];
int a = 0;
int b = 0;
int o = 0;
for(int o = 0; o < O.length; o++)
{
if(a < A.length && A[a] >= B[b] || b >= B.Length)
O[o++] = A[a++];
else if(b < B.length && A[a] <= B[b] || a >= A.length)
O[o++] = B[b++];
}
return O;
}
public static boolean isEmpty(){
for(int i=0; i< array.length;i++){
if(array[i] =! null){
return true;
}
}
}
ich lege aber am Anfang ein Array mit einer bestimmten Länge fest, daher sollte length immer ungleich 0 sein.
sorry für den =! Fehler, habs nur kopiert
Poste uns mal was du schon hast, dann kann man dir eher helfen. Ich glaub du denkst es sei schwerer als es eigentlich ist.
ich bin eine "sie"
das ist ja dann eine ganz neue Methode. ich hab ja schon eine Methode und in die will ich die Bedingung reinschreiben.
wie könnte es denn noch anders gehen ?
dann nimmst du halt nur:
for(int i=0; i< array.length;i++){
if(array[i] != null){
nicht leer
}
leer
}
Ist hier overkill, wenn man bedenkt, was er programmieren will. (Gibt 2 bessere Möglichkeiten. Entweder immer nur das Element prüfen was du grad brauchst oder mit einem Sentinel.)
Boolshit.
Deine Funktion hat keinen Parameter.
array[i] =! null ist invalide Syntax
Selbst wenn du != null meintest, wäre es die falsche Logik. Denn wenn das Array-Item ungleich null wäre, hätte es einen Wert. Dann dürfte isEmpty aber auch nicht true zurückgeben.
Du iterierst außerdem über ein Array dessen Länge dir bekannt ist. Der einfachste Weg wäre zu prüfen, ob array.length == 0 ist.