gpt4 book ai didi

java - 可以数组。 sort 对已添加到数组中的枚举进行排序。?

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:30 25 4
gpt4 key购买 nike

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

最佳答案

如果您使用Arrays.sort(T[], Comparator) ,您必须自己处理 null 值。

示例

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
}
});

关于java - 可以数组。 sort 对已添加到数组中的枚举进行排序。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com