zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite
    String stringG = "Red Delicious" ;
    String stringH = "Red Delicious" ;

    if (stringG == stringH)
      System.out.println( "Ein Literal" );
    else
      System.out.println( "Nicht gleich" );

Antwort:

Ein Literal

Denkt daran, dass diese Optimierung nur für Stringliterale gilt, die die gleichen Zeichen enthalten. Also verweisen in dem oben stehenden die beiden Variablen auf ein und dasselbe Objekt. == gibt true zurück, da stringG und stringH identische Referenzen enthalten.


equals() Methode

Hier ist eine weitere heikle Situation:

class ArrayGleichheit
{
  public static void main ( String[] args )
  {
    int[] arrayE = { 1, 2, 3, 4 };
    int[] arrayF = { 1, 2, 3, 4 };

    if (arrayE.equals( arrayF ) )
      System.out.println( "Gleich" );
    else
      System.out.println( "Nicht gleich" );
  }
}

Ausgabe:
Nicht gleich

Die equals() Methode für Arrays gibt den gleichen Boole'schen Wahrheitswert zurück wie der ==-Operator.


FRAGE 23:

Wäre es gut eine Methode zu haben, die zwei Arrays untersucht (wie die zwei oben stehenden) und true oder false zurückgibt, je nachdem welche Elemente die Arrays enthalten?


zur vorherigen Seite  zum Inhaltsverzeichnis   zur nächsten Seite