0
点赞
收藏
分享

微信扫一扫

【Java数据结构】对象的比较compareable、equals

日月同辉9908 2022-03-25 阅读 49

建大堆/小堆时可以直接重写Comparator方法

    PriorityQueue<Integer> minHeap = new PriorityQueue<>(new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            return o2-o1;
        }
    });

比较对象中的内容时,实验重写基类的equals方法即可。

    public class Card {
        public int rank; // 数值
        public String suit; // 花色
        public Card(int rank, String suit) {
            this.rank = rank;
            this.suit = suit;
        }
        @Override
        public boolean equals(Object o) {
// 自己和自己比较
            if (this == o) {
                return true;
            }
            // o如果是null对象,或者o不是Card的子类
            if (o == null || !(o instanceof Card)) {
                return false;
            }
// 注意基本类型可以直接比较,但引用类型最好调用其equal方法
            Card c = (Card)o;
            return rank == c.rank
                    && suit.equals(c.suit);
        }
    }
举报

相关推荐

0 条评论