if ( array.length > 0 ) { ... System.out.println("Der Durchschnitt ist: " + summe / array.length); } else System.out.println("Das Array enthaelt keine Elemente.");
Sind die folgenden zwei Arrays gleich?
int[] arrayA = { 1, 2, 3, 4 }; int[] arrayB = { 7, 8, 9};
Offensichtlich nicht.
Sind diese zwei Arrays gleich?
int[] arrayC = { 1, 2, 3, 4 }; int[] arrayD = { 4, 3, 2, 1 };
Weniger offensichtlich, aber üblicherweise würden sie nicht als gleich angesehen.
Was ist mit diesen zwei Arrays, sind sie gleich?
int[] arrayE = { 1, 2, 3, 4 }; int[] arrayF = { 1, 2, 3, 4 };
Hier hängt es davon ab, was mit "gleich" gemeint ist.
Das Objekt, auf das die Variable arrayE
verweist ist nicht dasselbe
Objekt auf das Variable arrayE
verweist.
Der "Alias Detector" ==
gibt false
zurück.
class ArrayGleichheit { public static void main ( String[] args ) { int[] arrayE = { 1, 2, 3, 4 }; int[] arrayF = { 1, 2, 3, 4 }; if (arrayE == arrayF) System.out.println( "Gleich" ); else System.out.println( "Nicht gleich" ); } } Ausgabe: Nicht gleich
Wir haben diese Situation bereits bei Strings gesehen, die die gleichen Zeichen enthalten.
class StringGleichheit
{
public static void main ( String[] args )
{
String stringE = new String( "Red Delicious");
String stringF = new String( "Red Delicious");
if (stringE == stringF)
System.out.println( "Gleich" );
else
System.out.println( "Nicht gleich" );
}
}
Ausgabe:
Nicht gleich
Es gibt zwei verschiedene Objekte, also ist die Objektreferenz in stringE
nicht ==
mit der Objektreferenz in stringF
.
Verwechslungsgefahr!
String stringG = "Red Delicious" ; String stringH = "Red Delicious" ; if (stringG == stringH) System.out.println( "Ein Literal" ); else System.out.println( "Nicht gleich" );
Was gibt das oben stehende Fragment aus?