如何对包含空元素的对象数组进行排序?
在我的程序中,创建了一个固定长度[7]的对象数组,每个对象都是一个包含3,一个和一个.这些值从 .txt 文件中读取,并根据 的值添加到数组的特定索引中。.txt文件中的条目较少,然后数组中有索引,因此数组最终看起来像这样:fClasses
FClass
Strings
int
int[]
int
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
int[]
compareTo
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)
我的方法看起来像这样,它位于一个实现的类中: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文件对其进行了测试,并且在这种情况下排序可以正常工作,因此我相信我遇到的问题是我的排序方法无法对包含空元素的数组进行排序。有什么办法可以做到这一点吗?