title: Sorting string in alphabetical order
body: <p>The following code compiles, but the sortTitles() method does not sort the titles of the movies in alphabetical order as it is supposed to. How would you fix the compareTo() and sortTitles() methods?</p>
  
  <p><strong>Movie2 Class</strong></p>
  
  <pre><code>public class Movie2 implements Comparable&lt;Movie2&gt; {
      // instance variables 
      private String title;
      private int year;
      private String studio;
  
      public Movie2(String title, int year, String studio) {
          // initialise instance variables
          this.title = title;
          this.year = year;
          this.studio = studio;
      }
  
      public String toString() {
          String listing;
          listing = title + ", " + year + ", " + studio;
  
          return listing;
      }
  
      public void setTitle(String title) {
          this.title = title;
      }
  
      public String getTitle() {
          return title;
      }
  
      public void setYear(int year) {
          this.year = year;
      }
  
      public int getYear() {
          return year;
      }
  
      public void setStudio(String studio) {
          this.studio = studio;
      }
  
      public String getStudio() {
          return studio;
      }
  
      public int compareTo(Movie2 obj) {
          if (title &lt; obj.getTitle()) {
              return -1;
          }
          else {
              return 1;
          }
      }
  }
  </code></pre>
  
  <p><strong>TestMovie2 class</strong></p>
  
  <pre><code>public class TestMovie2 {
      public static void main(String[] args) {
          Movie2[] myMovies = new Movie2[10];
          Movie2[] sorted = new Movie2[10];
  
          myMovies[0] = new Movie2("The Muppets Take Manhattan", 2001, "Columbia Tristar");
          myMovies[1] = new Movie2("Mulan Special Edition", 2004, "Disney");
          myMovies[2] = new Movie2("Shrek 2", 2004, "Dreamworks");
          myMovies[3] = new Movie2("The Incredibles", 2004, "Pixar");
          myMovies[4] = new Movie2("Nanny McPhee", 2006, "Universal");
          myMovies[5] = new Movie2("The Curse of the Were-Rabbit", 2006, "Aardman");
          myMovies[6] = new Movie2("Ice Age", 2002, "20th Century Fox");
          myMovies[7] = new Movie2("Lilo &amp; Stitch", 2002, "Disney");
          myMovies[8] = new Movie2("Robots", 2005, "20th Century Fox");
          myMovies[9] = new Movie2("Monsters Inc.", 2001, "Pixar");
  
          System.out.println("  Movies ");
          System.out.println("______________________________");
          System.out.println();
          printMovies(myMovies);
          System.out.println();
          System.out.println();
  
          Movie2[] dest = new Movie2[myMovies.length];
          sortTitles(myMovies, dest);
  
          System.out.println(" Sorted by title - ascending ");
          System.out.println("______________________________");
          System.out.println();
          printMovies(myMovies);
          System.out.println();
          System.out.println();
  
          sortYears(myMovies, sorted);
          System.out.println(" Sorted by year - descending");
          System.out.println("______________________________");
          System.out.println();
          printMovies(sorted);
          System.out.println();
          System.out.println();
      }
  
      public static void sortTitles(Movie2[] myMovies, Movie2[] dest) {
          for (int i = 0; i &lt; myMovies.length; i++) {
              Movie2 next = myMovies[i];
              int insertIndex = 0;
              int k = i;
              while (k &gt; 0 &amp;&amp; insertIndex == 0) {
                  if (myMovies[k].getTitle().compareTo(dest[k - 1].getTitle()) &lt; 1) {
                      insertIndex = k;
                  }
                  else {
                      dest[k] = dest[k - 1];
                  }
                  k--;
              }
              dest[insertIndex] = next;
          }
      }
  
      public static void printMovies(Movie2[] sorted) {
          for (int i = 0; i &lt; sorted.length; i++)
              System.out.println(sorted[i]);
      }
  
      public static void sortYears(Movie2[] myMovies, Movie2[] sorted) {
          for (int i = 0; i &lt; myMovies.length; i++) {
              Movie2 next = myMovies[i];
              int insertindex = 0;
              int k = i;
              while (k &gt; 0 &amp;&amp; insertindex == 0) {
                  if (next.getYear() &lt; sorted[k - 1].getYear()) {
                      insertindex = k;
                  }
                  else {
                      sorted[k] = sorted[k - 1];
                  }
                  k--;
              }
              sorted[insertindex] = next;
          }
      }
  }
  </code></pre>