Ja, natürlich.  Aber wir müssen auf die nulls aufpassen.
Hier ist etwas Code mit der teilweise fertigen suchen() Methode:
suchen() gibt entweder eine Referenz auf den gefunden Eintrag zurück
oder null, wenn der Eintrag nicht gefunden werden konnte.
class TelefonEintrag
{
  private String name;     // Name der Person
  private String telefon;  // ihre Telefonnummer
  . . . . .
}
class TelefonBuch
{
  private TelefonEintrag[] telefonbuch;
  public TelefonBuch()    // Konstruktor
  {
    telefonbuch = new TelefonEintrag[ 5 ] ;
    . . . . . .
  }
  public TelefonEintrag suchen( String targetName )
  {
    // lineare Suche verwenden, um den Zielnamen zu finden
    for ( int j=0; j < telefonbuch.; j++ )
    {
      if ( telefonbuch[ j ] != null && telefonbuch[ j ].getName().equals( targetName ) )
        return telefonbuch[ j ];
    }
    return null;
  }
}
Gebräuchlicher Trick: Denkt daran, dass && ein Short-Circuit-Operator ist.
Das bedeutet sobald ein false gefunden wird, ist die Auswertung des ganzen Boole'schen Ausdrucks beendet.
Wir betrachten diesen Ausdruck:
telefonbuch[ j ] != null && telefonbuch[ j ].getName().equals( targetName )
Wenn die Zelle j von telefonbuch null ist,
dann wird die rechte Seite des Ausdrucks nicht ausgewertet.
Da der gesamte Ausdruck false ist, egal was der rechte Ausdruck ergeben würde.
(Rückblick: ) Angenommen, dass telefonbuch[ j ] != null true ist.
Welche möglichen Werte könnte der gesamte Ausdruck haben?