Functional Programming in Java, Second Edition: Suggestion to change the equals() call

@venkats

We read:

  public static void findChicagoImperative(final List<String> cities) {
    boolean found = false;
    for(String city : cities) {
      if(city.equals("Chicago")) {
        found = true;
        break;
      }
    }

This irked me a bit in the first edition already.

Why not

  public static void findChicagoImperative(final List<String> cities) {
    boolean found = false;
    for(String city : cities) {
      if("Chicago".equals(city)) { // null safe
        found = true;
        break;
      }
    }

or even

  public static void findChicagoImperative(final List<String> cities) {
    boolean found = false;
    for(String city : cities) {
      found = "Chicago".equals(city);
      if (found) {
        break;
      }
    }