我得到了一个有关如何按字母顺序对数组中的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);
}