JAVA中关于大小比较的概括

目录

一.比较是否相等

1.双等号"==" 

2.equals()   

二.比较大小

1.comparble接口

2.比较器comparator接口

3.三种方式对比

4. 集合框架中PriorityQueue的比较方式


一.比较是否相等

1.双等号"==" 

用来比较内存中的地址是否相等

不同对象的内存地址一定不相等。(new出来的两个对象)

2.equals()   

默认也使用“==”来比较,如果要判断两个对象内容是否相等,需要重写equals()方法。

重写equals()方法步骤:1.判断是否为空   

                                           2.判断类型是否相等

                                           3.比较每个属性的值是否相等

二.比较大小

一般对象用大于小于比较时,编译不通过。

==可以比较的原因是:对于用户实现自定义类型,都默认继承自Object类,而Object类中提供了equal方法,而==默认情况下调用的就是equal方法,但是该方法的比较规则是:没有比较引用变量引用对象的内容,而是直接比较引用变量的地址。

1.comparble接口

每一个实体类都可以继承,实现比较方法comparaTo()方法。

注:该接口只能比较一个属性,若小于,结果为负数;相等时结果为0;大于时结果为正数。最后是以升序排列方式输出。

2.比较器comparator接口

该种接口可以定义很多比较规则,根据具体业务场景做选择。(需要建立多个比较器)

注:string类型本身实现了comparable接口,可直接放入优先级队列中。除了string类型,还有Number的子类double、char等都可以放入优先级队列中。

3.三种方式对比

      覆写的方法                                                 说明
Object.equals                                因为所有类都是继承自 Object 类,所以直接覆写即可,不过只                                                        能比较相等与否
Comparable.compareTo                需要手动实现接口,侵入性比较强,但一旦实现,每次用该类                                                          都有顺序,属于内部顺序
Comparator.compare                    需要实现一个比较器对象,对待比较类的侵入性弱,但对算法                                                          代码实现侵入性强

4. 集合框架中PriorityQueue的比较方式

集合框架中的PriorityQueue底层使用堆结构,因此其内部的元素必须要能够比大小,PriorityQueue采用了:Comparble和Comparator两种方式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LAKURRAA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值