"Grundkurs Programmieren in Java - (6. Auflage, 2011)"
2001-2011, Carl Hanser Verlag

Lösungsvorschlag zu Aufgabe 5.2 (Version 3.0)

(c) 2001-2011 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger

a)

Mit a == b vergleicht man nur die Referenzen. Sind diese gleich, so kann man zwar schließen, daß die beiden Felder identisch sind (tatsächlich handelt es sich ja nur um eines), sind diese aber ungleich, so können die Feldinhalte dennoch gleich sein.

Der erste Fall läßt sich wie folgt darstellen:

Fall 1


Der zweite Fall wäre dann:

Fall 2


b)

boolean felderSindGleich = true;

if (a.length != b.length)
  felderSindGleich = false;

if (felderSindGleich) {

  for (int i=0; i < a.length; i++) {
    if (a[i] != b[i]) {
      felderSindGleich = false;
      break;
    }
  }

}

System.out.println("Die Felder sind gleich: " + felderSindGleich );