Ich bin völlig neu in der Programmierung. Kannst du mir ein paar Tipps geben, wie ich meinen Code verbessern kann?
Das Problem war:
Gegeben ein Array von Zeichenfolgen, ein neues Array ohne die Zeichenfolgen, die gleich der Zielzeichenfolge sind. Ein Ansatz besteht darin, die Vorkommen der Zielzeichenfolge zu zählen, ein neues Array mit der richtigen Länge zu erstellen und dann die korrekten Zeichenfolgen zu kopieren.
Und mein Code:Code Verbesserung, Array von Strings
public String[] wordsWithout(String[] words, String target) {
int numberOfTargets = 0;
for (int i = 0; i < words.length; i++){
if (words[i].equals(target)) numberOfTargets++;
}
String[] result = new String[words.length - numberOfTargets];
for (int i = 0; i < words.length - numberOfTargets; i++){ // 1
result[i] = "0"; // 1
} // 1
for (int i = 0; i < words.length; i++){
if (!words[i].equals(target)){
int j = 0; // 2
while (!result[j].equals("0")){ // 2
j++; // 2
} // 2
result[j] = words[i];
}
}
return result;
}
Beispiel dafür, wie Code funktioniert:
wordsWithout(["aa", "ab", "ac", "aa"], "aa") → ["ab", "ac"]
Ich weiß, dass neue Array von ints von Nullen dy Standard gefüllt ist. Was ist mit neuen Arrays von Strings? Ich musste es künstlich mit Nullen füllen, die mit // 1 markiert waren, so dass ich zum rechten Element "scrollen" konnte, wenn ich meinem neuen Array Elemente hinzufügen musste, die mit // 2 markiert waren.
Mein Code scheint irgendwie peinlich zu sein. Gibt es Standardmethoden oder allgemeine Möglichkeiten, meinen Code zu verbessern?
Nun können Sie 'Arrays.fill (Ergebnis "0") verwenden,' die for-Schleife zu vermeiden. Arrays von Objekten werden immer auf null initialisiert, genau wie primitive Arrays auf 0 oder im Fall von Boolean auf 'false' initialisiert werden. Diese Frage gehört jedoch zum Code Review, nicht zu StackOverflow. – Kayaman
Sie finden die Antwort hier: http://stackoverflow.com/questions/7940337/remove-a-specific-string-from-an-array-of-string Als eine Randnotiz, wenn Sie ein Anfänger sind , denke nicht an Effizienz. Java ist optimiert genug, um grundlegende Dinge zu tun. Es ist nur wichtig, wenn Sie eine Datenbank abfragen, aber für diese Operationen ist es ein Bruchteil einer Millisekunde Unterschied zwischen dieser und dieser Implementierung, aber den Code lesbar zu machen, zahlt auf lange Sicht viel mehr. Viel Glück! –