我有一个包含甲板排名的枚举。我将这些排名添加到一个数组中。当我使用Arrays.sort使用自定义比较器对数组进行排序时,它没有排序,而是返回了这个:
Exception in thread "main" java.lang.NullPointerException at java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:291) at java.util.ComparableTimSort.sort(ComparableTimSort.java:171) at java.util.ComparableTimSort.sort(ComparableTimSort.java:146) at java.util.Arrays.sort(Arrays.java:472) at HW3.Deck.sort(Deck.java:69) at HW3.War.main(War.java:100) Java Result: 1
有什么建议吗?谢谢
下面是代码:
@Override ` public int compareTo(PlayingCard o) { if (this==o) return 0; if(this.getSuit()!=o.getSuit()){ return this.suit.compareTo(o.getSuit()); } else { return this.rank.compareTo(o.getRank()); } }
如果使用阵列。sort(T[],Comparator),您必须自己处理空值。
例
Arrays.sort(enums, new Comparator<Rank>>() {
@Override
public int compare(Rank o1, Rank o2) {
if (o1 == o2) {
return 0;
}
// Put NULL to the end.
if (o1 == null) {
return 1;
}
if (o2 == null) {
return -1;
}
return o1.compareTo(o2); // sort by ordinal
}
});
假设我有一个walls列表listOfWalls,并且每个wall对象具有以下层次结构: 所以为了在这个列表中获得一些墙的wallMaterialType,我会这样做 null 从那里我不知道该怎么走?感谢帮助。
问题内容: 如果需要在列表中添加枚举属性,如何声明列表?让我们说枚举类是: 我想要做: 需要用什么代替 问题答案: 如果要使用字符串类型,请使用以下命令: 否则,MByD的答案
问题内容: 我想对整数的arraylist的arraylist进行排序,需要帮助吗? 我被告知,我需要实现比较器或可比对象,然后使用collection.sort对列表列表进行排序… 问题答案: 没有错误检查空列表,但是这里是。 使用Java 8,它变得更加简洁:
我试图找到一种算法(不是matlab命令)来枚举所有可能的NxM矩阵,其约束条件是每个单元格中只有正整数(或0)以及每行和每列的固定和(这些是算法的参数)。 例:枚举所有2x3矩阵,行总计为2,1,列总计为0,1,2: 这是一个相当简单的例子,但是随着N和M的增加,以及总和的增加,可能会有很多可能性。 编辑1 我可能有一个有效的安排来启动算法: target_row_sum[i]是第一行的预期金额
我有一张班级卡和一张班级手牌。我还有两个编号: 套装,包含值:钻石、棍棒、心脏、黑桃 和等级,包含值:二、三、四、五、六、七、八、九、十、杰克、皇后、国王、王牌 Hand类有一个链接到Card类的arraylist。我想重写Hand类中的compareto()方法,以便按照秩值对卡片对象进行排序按此顺序: 二、三、四、五、六、七、八、九、十、杰克、女王、国王、王牌。 如果有两张牌具有相同的等级
我有一个产品类: 如果group是一个单独的字段,就像name一样,我可以这样做: 如何使用? 预期的结果如下所示,对于productList中存在的每个组,映射到在其字段中具有该组的产品列表