美文网首页Java开发手册
Java Comparator接口返回1,0,-1区别

Java Comparator接口返回1,0,-1区别

作者: 筑梦_Dream | 来源:发表于2019-11-04 15:49 被阅读0次

    其实不是一定要返回1,0,-1,只是代表比较两笔数据大于,等于,小于而已,换成其它正负和0(相等)也可以,后文就用1,0,-1代表。

    返回1

    我们都知道Comparator有两个参数,代表两笔先后数据,那么比较两笔数据,前一笔减去后一笔,返回1,此时代表交换顺序,如果两个元素相同返回1,则顺序不会交换,如果不进行比较,直接返回1,会原封不动输出。

    返回-1

    如上所述,如果返回-1,代表不交换顺序,如果两个元素相同返回-1,则交换顺序,如果不进行比较,直接返回-1,会倒序输出。

    返回0

    返回0代表不交换顺序。如果直接返回0,会原封不动输出。

    注意

    这时大家可能会有疑问,貌似返回0和-1没区别呀?其实不然,返回0代表真正意义的两个元素相同,如果你正在用map,自定义比较器,是用key做对比的,返回0代表元素相同,此时就会覆盖掉,导致数据丢失,此时应该用-1,另外,如果比较器中只返回1和0,那和上面一样,会原封不动。

    相关文章

      网友评论

        本文标题:Java Comparator接口返回1,0,-1区别

        本文链接:https://www.haomeiwen.com/subject/ydhdbctx.html