Eine Methode zum wechseln Inhalt von 2 arrays
Ich bin versucht, zu schreiben, eine Methode, um schnell zuordnen den Inhalt eines int [], um die anderen. Ich glaube, ich könnte mit der Schwierigkeit der Interpretation das problem, weil ich glaube nicht, dass Methoden ausführen kann-Zuweisung an eine variable angegebenen Namen als argument. Wenn das problem nicht sagen, zu schreiben, eine Methode, würde ich wohl nur die erklären, die temp-int[] und führen Sie die Aufgaben in main. Ich zusätzlichen Druck Schleifen, um die switchThem Methode, um zu zeigen, wie sich das Ergebnis unterscheidet sich vom drucken der Inhalte in Haupt -, nach dem ausführen der Methode.
Hier ist der text das problem:
"Schreiben Sie eine Methode namens switchThem nimmt zwei integer-arrays als Parameter und schaltet den Inhalt des arrays. Berücksichtigen Sie, dass die arrays können in verschiedenen Größen."
public class Ch8Scratch {
public static void main (String[] args) {
int[] first = { 1, 2, 3, 4, 5 };
int[] second = { 6, 7, 8 };
switchThem(first,second);
System.out.println();
for (int number : first) {
System.out.print(number + "\t");
}
System.out.println();
for (int number : second) {
System.out.print(number + "\t");
}
System.out.println();
}
public static void switchThem (int[] array1, int[] array2) {
int[] temp = array1;
array1 = array2;
array2 = temp;
for (int number : array1) {
System.out.print(number + "\t");
}
System.out.println();
for (int number : array2) {
System.out.print(number + "\t");
}
}
}
Ausgabe:
6 7 8
1 2 3 4 5
1 2 3 4 5
6 7 8
- "Berücksichtigen" kann auch bedeuten, dass Sie das signal der Anrufer, dass die operation kann nicht ausgeführt werden mit arrays unterschiedlicher Größe.
- "Ich glaube, ich könnte mit der Schwierigkeit der Interpretation das problem, weil ich glaube nicht, dass Methoden ausführen kann-Zuweisung an eine variable angegebenen Namen als argument" Sie sind wahrscheinlich, wie mir, es klingt wie Sie sind nur auf der Durchreise ein argument für eine Methode, und dann die Methode ist auf das argument.
- Der Grund, warum Sie bitten Sie um eine Methode, so dass Sie wieder verwenden können Sie Ihr switch-Methode ohne ständig zu schreiben, es wieder und wieder.
- OP sollte dies prüfen. stackoverflow.com/questions/40480/is-java-pass-by-reference
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihr switch diese Methode hat ein problem.
Es schaltet
array1
undarray2
(zwei Argumente).Aber es schaltet sich nicht
first
undsecond
aus der main-Methode.Erzähl deinem Lehrer, dass du nicht wirklich wechseln Sie in Java, denn Java hat keine Zeiger (übergabe by reference). Es gibt keine Möglichkeit, Ihre switch-Methode kann wirklich machen
first
Punkt zusecond
undsecond
Punkt zufirst
(Sie können nur simulieren dieses Verhalten - siehe z.B. die Antwort von Elliott Frisch oder option zwei in meiner Antwort).1) Eine option ist, um
first
undsecond
Klasse Variablen.Aber wenn du Sie Klassen-Variablen ist dies nicht das, was gewollt wird,
als Methode wird nicht wiederverwendbar sein.
Hier ist, was ich bin reden über.
2) Wahrscheinlich die einfachste option ist, um Sie darzustellen als array von arrays. Und dann Folgen diese Art von Muster. Diese Weise, die Sie wechseln
first[0]
mitsecond[0]
. Also technisch ist es noch nicht tun, schalten von zwei 1D-arrays. Aber es ist am nächsten, wie es sein könnte in Java.Die Sie nicht ändern können die Anrufer, die Referenzen, aber sowas kann das sein, was du suchst -
Ausgänge
OK, Sie kann nicht acctually dem Schalter des arrays (da ist es impssible in Java), aber Sie können schalten Sie Ihre Inhalte. Können sagen, wenn die arrays nicht gleich lang, Sie wollen swich maximal mögliche Menge der Elemente:
also mit dieser Schaltung: