我得到了一个有关如何按字母顺序对数组中的Actor对象进行排序的示例。

public class AlphaSortingExchange
{
 public static void main(String[ ] args)
 {
         String[ ] names = {"joe", "slim", "ed", "george"};
         sortStringExchange (names);
         for ( int k = 0;  k < 4;  k++ )
            System.out.println( names [ k ] );
  }

  public static void sortStringExchange( String  x [ ] )
  {
        int i, j;
        String temp;

        for ( i = 0;  i < x.length - 1;  i++ )
        {
            for ( j = i + 1;  j < x.length;  j++ )
            {
                     if ( x [ i ].compareToIgnoreCase( x [ j ] ) > 0 )
                      {                                             // ascending sort
                                  temp = x [ i ];
                                  x [ i ] = x [ j ];    // swapping
                                  x [ j ] = temp;

                       }
               }
         }
  }
}


我只能在对数组进行排序时遵循这种格式。 NetBeans不喜欢我的代码中的“ compareToIgnoreCase”语句,给出了错误


  “找不到符号:方法compareToIgnoreCase(Actors)位置类
  演员”


。以下是我的排序功能。

public static void sortActors(Actors actors[]) {

    int i, j;
    Actors temp;

    for (i = 0; i < actors.length - 1; i++)
    {
        for (j = i + 1; j < actors.length; j++)
        {
            if (actors[i].compareToIgnoreCase(actors[j]) > 0)
            {
                temp = actors[i];
                actors[i] = actors[j];
                actors[j] = temp;
            }
        }
    }
}


这是我的对象数组,也是数组中对象的示例。如前所述,我只能使用compareToIgnoreCase。我不知道如何使用此功能

private static void createActorsList() {

    Actors[] actors = new Actors[Constants.NUMBER_OF_ACTORS];

    Actors ladyViolet = new Actors();
    ladyViolet.setName("Lady Violet");
    ladyViolet.setDialogue("dialogue");
    ladyViolet.setHappiness(0);
    ladyViolet.setHealth(100);
    actors[Constants.VIOLET] = ladyViolet;
}


任何帮助或解决方案将不胜感激!

提前致谢!

最佳答案

您的Actor类没有compareToIgnoreCase方法。您可能打算在类的某个字段上调用该方法,例如,

if (actors[i].getName().compareToIgnoreCase(actors[j].getName()) > 0)


如果方法需要在Actor类上,则必须编写自己的实现:

public int compareToIgnoreCase(Actor actor) {
    return this.name.compareToIgnoreCase(actor.name);
}

09-28 03:20