Heim  >  Artikel  >  Java  >  So weisen Sie Werte zwischen Arrays in Java zu

So weisen Sie Werte zwischen Arrays in Java zu

王林
王林nach vorne
2023-05-02 12:46:061177Durchsuche

Der Array-Name ist die Adresse des ***-Elements, auf das der Kopfzeiger des Arrays zeigt. Wenn Sie es so verstehen, wissen Sie, dass a = b nicht realisierbar ist die Zuweisung des Arrays. Im Allgemeinen verwenden wir in C und C++ eine Schleife, um einen einzelnen Wert zuzuweisen, ähnlich wie folgt:

  1. for(int i=0;i<10;i++)

  2. a[i]=b[i];

Nachdem ich C und C++ so lange gelernt habe, finde ich es nach häufiger Verwendung nicht mehr schwierig. Aber in JAVA ist es nicht dasselbe wie in C und C++. Es kann a = b verwenden, um a zuzuweisen Der Inhalt wird in Form eines Arrays ausgegeben, er ist genau derselbe wie der Inhalt von b, was zeigt, dass diese Methode in meinem Programm möglich ist, aber es entsteht ein Fehler. Zuerst stellte ich fest, dass das Ergebnis das gleiche ist, egal ob ich a=b oder a=a.clone(); verwende, was etwas verwirrend war, aber jetzt verstehe ich es vollständig. Um dieses Problem zu veranschaulichen, demonstrieren wir es mit einem Programm:

private int[] subResources(int[] aa, int[] bb)  {     // 做减法     int []a=aa;     int []b=bb;     for (int i = 0; i < a.length; i++)      a[i] = a[i] - b[i];     return a;  }

Dies ist eine Funktion, die verwendet wird, um die Subtraktion zweier Arrays wie folgt zu realisieren. Die beiden oben genannten Methoden zur Übergabe von Parametern führen zu unterschiedlichen Ergebnissen Ergebnisse. Ja, wenn Sie den Wert des eingehenden Parameters in der Funktion addResources ändern, kann Methode 1 die Originaldaten nicht ändern, Methode 2 jedoch die Originaldaten. Bei der Zuweisung von Werten in Methode 1 wird zunächst eine Kopie des Arrays erstellt und dann die Kopie dem Zielarray zugewiesen. Auf diese Weise ist die Adresse des kopierten Arrays sicherlich nicht dieselbe wie die Adresse des ursprünglichen Arrays Auf diese Weise ändert Methode 1 die Originaldaten nicht, unabhängig davon, wie Sie sie ändern. Methode 2 weist jedoch die Adresse der Daten direkt den Zieldaten zu, sodass die beiden Arrays unterschiedliche Array-Namen haben beziehen sich tatsächlich auf dieselbe Adresse, daher kann der ursprüngliche Wert natürlich geändert werden.

Auf diese Weise ist es ein bisschen wie die Zeiger- und Referenzwertübertragung in Funktionsparametern in C++. Da in Java alle Zeigerbeziehungen Referenztypen verwenden, kann es nach längerer Verwendung von C++ leicht zu Fehlern kommen . Solche Fehler. Es ist nicht so, als würde man den Wert addResources (int *a,int *b) oder addResources (int a[],int b[]) wie in C++ übergeben. Das wird ein Nachteil sein, dass ich mich hier in meinem Leben nur noch mehr auf das Lernen konzentrieren muss. Jetzt verstehe ich, warum die grundlegenden Fragen auf der Jobmesse einfach erscheinen, aber nicht jeder sie gut beantworten kann .

Das obige ist der detaillierte Inhalt vonSo weisen Sie Werte zwischen Arrays in Java zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen