在我的程序中有一个数组fClasses
创建固定长度[7]个对象,每个对象都是一个类FClass
其中包含 3Strings
, an int
, 和int[]
。这些值是从 .txt 文件中读取的,并根据该值添加到数组的特定索引中。int
。 .txt 文件中的条目数少于数组中的索引,因此数组最终看起来像这样:
fClasses[0] { str1, str2, str3, int1, int [] {1,2,3,4,5}}
fClasses[1] { str1, str2, str3, int1, int [] {1,2,3,4,5}}
fClasses[2] { str1, str2, str3, int1, int [] {1,2,3,4,5}}
fClasses[3] null
fClasses[4] null
fClasses[5] { str1, str2, str3, int1, int [] {1,2,3,4,5}}
fClasses[6] { str1, str2, str3, int1, int [] {1,2,3,4,5}}
稍后在程序中我需要根据平均值对数组进行排序ints
in the int[]
。我有一个返回此值的工作方法,但是当我尝试使用对数组进行排序时compareTo
and Arrays.sort
我收到一长串错误,从以下开始:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.util.ComparableTimSort.countRunAndMakeAscending(Unknown Source)
at java.util.ComparableTimSort.sort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at FProg.sortClasses(FProg.java:228)
My compareTo
方法看起来像这样,它位于实现Comparable
:
public int compareTo(FClass other)
{
if (other == null || this.avg == other.avg)
{
return 0;
}
else if (this.avg < other.avg)
{
return -1;
}
else
{
return 1;
}
}
我试图调用这个方法来进行排序:
public void sortClasses()
{
Arrays.sort(fClasses, 0, MAX_CLASSES);
}
我已经使用一个 .txt 文件对其进行了测试,该文件包含足够的条目来填充数组,并且在这种情况下排序可以正常工作,所以我相信我遇到的问题是我的排序方法无法对包含 null 元素的数组进行排序它。有什么办法可以实现这一点吗?