当前位置: 首页 > 知识库问答 >
问题:

Can阵列。对已添加到数组中的枚举进行排序。?

狄飞尘
2023-03-14

我有一个包含甲板排名的枚举。我将这些排名添加到一个数组中。当我使用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());
     }   
}

共有1个答案

傅志诚
2023-03-14

如果使用阵列。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中存在的每个组,映射到在其字段中具有该组的产品列表