title: In Java, is there a more elegant way to remove duplicate strings from and ArrayList of Strings?
body: <p>So, a long story short, I have a Java homework assignment that requires a long ArrayList of Strings to be manipulated in various ways (we're doing things like showing combinations of words, adding and removing from the ArrayList, nothing too special).  I noticed that a few of the provided ArrayLists have duplicate entries (and the duplicates aren't necessary for this assignment), so I got the okay from my teacher to sanitize the data by removing duplicate entries.
  Here's what I came up with:</p>
  
  <pre><code>private static ArrayList&lt;String&gt; KillDups(ArrayList&lt;String&gt; ListOfStrings) {  
  
      for (int i = 0 ; i &lt; ListOfStrings.size(); i++) {
          for (int j = i + 1; j &lt; ListOfStrings.size(); j++) {
              //don't start on the same word or you'll eliminate it.
              if ( ListOfStrings.get(i).toString().equalsIgnoreCase( ListOfStrings.get(j).toString() )  ) {
                  ListOfStrings.remove(j);//if they are the same, DITCH ONE.
                  j = j -1; //removing the word basically changes the index, so swing down one.
              }                                
          }
      }
      return ListOfStrings;
  }
  </code></pre>
  
  <p>This is fine for my assignment, but I doubt it would be very useful in the real world. Is there a way to do this that would ignore white space and special characters during the comparison? Is there a cleaner way in general to handle this (maybe without the nested For Loops)? Is there another question I should be asking that I don't know to ask?</p>