allora per le stringhe la classe String si fa il confronto con equals e non con ==.
In generale il confronto == è il confronto per riferimento, se vuoi un comportamento diverso devi ridefinirlo in ogni classe. Considera che queste cose richiedono particolari accorgimenti.
String, visto che è molto usata, fornisce già un'implementazione funzionante di equals, per cui utilizza quella per fare confronti, cioè

codice:
citta.equals(altrastring);
Infine dai nomi significativi a quello che usi: se il tuo attributo di istanza si chiama citta cerca di non usare citta come parametro specie quando devi confrontarli: ti trovi a dover scrivere una marea di this che appensantiscono il codice.
Prova con
codice:
public boolean risiede(String[] otherCitta){
  boolean ret = false; 
  for (int index = 0; index < otherCitta.length; index++){
      if (citta.equals(otherCitta[index]) {
               ret = true; 
               break;
       }
  }
return ret; 
}
Inserisci un break (che a molti non piace), ma hai il vantaggio di avere un unico punto di uscita (il return ret finale)