草庐IT

CompareTo

全部标签

java - Java 新手 - 如何编写用于排序的 compareTo 方法

我一直在学习一些关于如何根据对象的属性对对象进行排序的教程。例如,如果我们有一个名为person的类,它有一个名为name的属性,我们只需实现Comparable接口(interface)并覆盖compareTo。但是,不同的教程会显示您在compareTo中编写的不同代码,例如这里是oneway:publicintcompareTo(Objecto)throwsClassCastException{Dated=(Date)o;//Ifthisdoesn'twork,ClassCastExceptionisthrownintyd=year-d.year;intmd=month-d.mo

android - 不实现接口(interface)成员 'IComparable.CompareTo(Object)'

我有一个android的.aar文件。我正在尝试在我的xamarin.android应用程序中使用它。我按照链接https://developer.xamarin.com/guides/android/advanced_topics/binding-a-java-library/binding-an-aar/中给定的步骤进行操作但是当我尝试构建我的库时出现以下错误“没有实现接口(interface)成员‘IComparable.CompareTo(Object)’”我找到了一些解决方案,其中提到在metadata.xml中我们需要添加一些属性。所以我在那里添加了以下行path="/ap

Kotlin Char compareTo 失败

我在Kotlin中有以下代码片段:valpair:Pair='z'to'z'valcomparison=pair.first.compareTo(pair.second)println(comparison)当我尝试运行它时,它在第二行失败并出现以下异常:java.lang.ClassCastException:java.lang.Charactercannotbecasttojava.lang.NumberIDE(IntelliJ)不会提示任何错误的类型。这个问题在某种程度上与Chars来自Pair的事实有关。因为'z'.compareTo('z')工作正常。你知道Kotlin是如何

Kotlin Char compareTo 失败

我在Kotlin中有以下代码片段:valpair:Pair='z'to'z'valcomparison=pair.first.compareTo(pair.second)println(comparison)当我尝试运行它时,它在第二行失败并出现以下异常:java.lang.ClassCastException:java.lang.Charactercannotbecasttojava.lang.NumberIDE(IntelliJ)不会提示任何错误的类型。这个问题在某种程度上与Chars来自Pair的事实有关。因为'z'.compareTo('z')工作正常。你知道Kotlin是如何

java - FindBugs - 如何解决 EQ_COMPARETO_USE_OBJECT_EQUALS

我在这里一无所知......1:privatestaticclassForeignKeyConstraintimplementsComparable{2:StringtableName;3:StringfkFieldName;4:5:publicintcompareTo(ForeignKeyConstrainto){6:if(this.tableName.compareTo(o.tableName)==0){7:returnthis.fkFieldName.compareTo(o.fkFieldName);8:}9:returnthis.tableName.compareTo(o.ta

java - BigDecimal compareTo 未按预期工作

根据JavaDoc对于BigDecimal,compareTo函数不考虑比较期间的比例。现在我有一个看起来像这样的测试用例:BigDecimalresult=callSomeService(foo);assertTrue(result.compareTo(newBigDecimal(0.7))==0);//thisdoesnotworkassertTrue(result.equals(newBigDecimal(0.7).setScale(10,BigDecimal.ROUND_HALF_UP)));//thisworks我期望函数返回的值是0.7并且比例为10。打印该值显示了预期的结

java - 我可以使用 compareTo 对整数和 double 值进行排序吗?

我可以使用compareTo对整数和double值进行排序吗?我的系统给我一个错误,我无法在原始类型int上调用compareTo(int)。有什么想法吗?代码:publicintcompare(Objecto1,Objecto2){Recordo1C=(Record)o1;Recordo2C=(Record)o2;returno1C.getPrice().compareTo(o2C.getPrice());}classRecordpublicclassRecord{Stringname;intprice;publicStringgetName(){returnname;}public

java - 我应该使用 Calendar.compareTo() 来比较日期吗?

这是比较日期的有效方法吗:CalendarsomeCalendar1=Calendar.getInstance();//currentdate/timesomeCalendar1.add(Calendar.DATE,-14);CalendarsomeCalendar2=Calendar.getInstance();someCalendar2.setTime(someDate);//someDateisintheformatofMM/dd/yyyyif(someCalendar2.compareTo(someCalendar1)...或者有更好的方法吗? 最佳

java - 当参数字符串为 null 时,int compareTo() 应该返回什么?

据说当输入参数为null时,compareTo()应该抛出NullPointerException。但是,我正在实现一个需要将字段与String类型进行比较的类。这些字段不必是强制性的。我想知道在这种情况下,1)当输入为空时应该返回什么?任何非空字符串在字典序上是否应该大于或小于空值?和2)如果这被认为是不好的做法,是否有任何支持论据?我应该强制用户改用空字符串吗?如果使用空字符串,那会不会混淆字段不适用的情况和字段为空的情况?如果必须抛出异常,那么除了在手册中警告用户之外,我还能/应该做什么?编辑:我在这里可能没有表达清楚,但在我正在实现的程序中,可以为空的字符串都是字段或类,不应该

Python 相当于 Java 的 compareTo()

我正在用Python(3.2)做一个项目,我需要比较用户定义的对象。我习惯了Java中的OOP,其中人们会在类中定义一个compareTo()方法来指定该类的自然顺序,如下例所示:publicclassFoo{inta,b;publicFoo(intaa,intbb){a=aa;b=bb;}publicintcompareTo(Foothat){//returnanegativenumberifthisthatif(this.a==that.a)returnthis.b-that.b;elsereturnthis.a-that.a;}}我对Python中的类/对象相当陌生,所以我想知道