比较方法违反了其总合同!排序时

时间:2018-04-25 09:19:26

标签: android sorting collections comparator

我在比较两个对象时遇到错误。

我的代码:

public static Comparator<HotelResult> HotelLowRatingComparator = new Comparator<HotelResult>() {

        public int compare(HotelResult s1, HotelResult s2) {

            Double StudentName1 = Double.valueOf(s1.getStarRating());
            Double StudentName2 =Double.valueOf(s2.getStarRating());

            int val=(int) Math.round(StudentName1 - StudentName2);

            Log.e("Comparator",String.valueOf(val));

            //ascending order
            return (int) Math.round(StudentName1 - StudentName2);


        }
    }

错误日志: 致命的例外:主要

  

流程:com.tech.booking,PID:27473                                                                                        java.lang.IllegalArgumentException:比较方法违反了它的一般合同!                                                                                            在java.util.TimSort.mergeLo(TimSort.java:761)                                                                                            在java.util.TimSort.mergeAt(TimSort.java:497)                                                                                            在java.util.TimSort.mergeCollapse(TimSort.java:421)                                                                                            在java.util.TimSort.sort(TimSort.java:210)                                                                                            at java.util.Arrays.sort(Arrays.java:1998)                                                                                            在java.util.Collections.sort(Collections.java:1900)                                                                                            at com.tech.booking.Hotel_Module.HotelSearchResult_Activity $ 4.onTabReselected(HotelSearchResult_Activity.java:692)                                                                                            在android.support.design.widget.TabLayout.dispatchTabReselected(TabLayout.java:1177)                                                                                            在android.support.design.widget.TabLayout.selectTab(TabLayout.java:1136)                                                                                            在android.support.design.widget.TabLayout.selectTab(TabLayout.java:1128)                                                                                            在android.support.design.widget.TabLayout $ Tab.select(TabLayout.java:1427)                                                                                            在android.support.design.widget.TabLayout $ TabView.performClick(TabLayout.java:1537)                                                                                            在android.view.View $ PerformClick.run(View.java:21534)                                                                                            在android.os.Handler.handleCallback(Handler.java:815)                                                                                            在android.os.Handler.dispatchMessage(Handler.java:104)                                                                                            在android.os.Looper.loop(Looper.java:207)                                                                                            在android.app.ActivityThread.main(ActivityThread.java:5765)                                                                                            at java.lang.reflect.Method.invoke(Native Method)                                                                                            在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:789)                                                                                            在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

0 个答案:

没有答案