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?