title: How do I sort enum members alphabetically in Java?
body: <p>I have an enum class like the following:</p>
  
  <pre><code>public enum Letter {
      OMEGA_LETTER("Omega"), 
      GAMMA_LETTER("Gamma"), 
      BETA_LETTER("Beta"), 
      ALPHA_LETTER("Alpha"), 
  
      private final String description;
  
      Letter() {
        description = toString();
      }
  
      Letter(String description) {
        this.description = description;
      }
  
      public String getDescription() {
        return description;
      }
  }
  </code></pre>
  
  <p>Later down my code I basically iterate over the Letter enum and print its members out to the console:</p>
  
  <pre><code>for (Letter letter : Letter.values()) {
  System.out.println(letter.getDescription());
  }
  </code></pre>
  
  <p>I thought that the values() method would give me an ordered view of the enum (as mentioned <a href="http://www.ibm.com/developerworks/java/library/j-tiger04195/index.html" rel="noreferrer">here</a>), but this is not the case here. I simply get the enum members in the order I created them within the Letter enum class. Is there a way to output the values of an enum in alphabetical order? Would I need a separate comparator object, or is there a built-in way to do this? Basically I would like the values to be alphabetically sorted based on the getDescription() text:</p>
  
  <pre><code>Alpha
  Beta
  Gamma
  Omega
  </code></pre>