我得到了一个关于如何按字母顺序对数组中的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不喜欢&#34; compareToIgnoreCase&#34;在我的代码中声明,给出错误
&#34;找不到符号:方法compareToIgnoreCase(Actors)的位置类 演员&#34;
。下面是我的排序功能。
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;
}
非常感谢任何帮助或解决方案!
提前致谢!
答案 0 :(得分:1)
您的Actor
课程没有compareToIgnoreCase
方法。你可能意味着在一个类的字段上调用该方法,例如,
if (actors[i].getName().compareToIgnoreCase(actors[j].getName()) > 0)
如果该方法需要在Actor
课程上,您必须编写自己的实现:
public int compareToIgnoreCase(Actor actor) {
return this.name.compareToIgnoreCase(actor.name);
}