TreeSet无法正常工作

Dis*_*ude 0 java

输出不按升序排序.这是我得到的代码和输出.

实际输出是:

Amy Jose Jeremy Alice Patrick 
Alan Amy Jeremy Helen Alexi

虽然预期产量是:

Amy, Alice, Jeremy, jose, Patrick
Alan, Amy, Alexi, Helen, Jeremy

代码是:

public class MyFriends
{
   static Set<String> names = new TreeSet<String>();

  public MyFriends()
   {
      super();
      names = new TreeSet<String>();
   }

  public static void exampleMethod()
   {
     String[] name1 = {"Amy", "Jose", "Jeremy", "Alice", "Patrick"};
     String[] name2 = { "Alan", "Amy", "Jeremy", "Helen", "Alexi"};

     for (int i = 0; i < name1.length; i++)
     {
         names.add(name1[i]);
     }

     for (String aString : name1)
     {
       System.out.print(" " + aString);
     }

     for (int i = 0; i < name2.length; i++)
     {
        names.add(name2[i]);
     }

     for (String bString : name2)
     {
       System.out.print(" " + bString); 
     }

   }    
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

你现在只是再次写出数组......将数组的内容添加到a TreeSet中不会改变数组.

而不是两个块写出数组,你应该有一个,在最后:

for (String name : names)
{
    System.out.print(" " + name); 
}
Run Code Online (Sandbox Code Playgroud)

如果您确实需要两行输出,则应使用两个TreeSet实例.

如果要对数组进行排序,则应该对它们进行排序.当你向a添加一个值时TreeSet,它既不知道也不关心它来自何处.它只是对字符串对象的引用(在本例中).