草庐IT

COMPARETO

全部标签

java - 泛型和 compareTo() 方法

我正在尝试创建一个SkipList,并且我有一个采用通用数据类型的方法:publicvoidadd(Ekey,Integervalue){Nodep;p=find(key);}是什么把你带到了这里:publicNodefind(Ekey){//StartatheadNodep=head;while(true){while((p.getRight().getKey()!=Node.posInf)&&(p.getRight().getKey().compareTo(key)问题出在compareTo()上方法。它说compareTo()E类型未定义方法.在Eclipse中,它希望我像这样添

java - CompareTo 可能返回 0,替代 TreeSet/TreeMap

我需要一组经过排序的对象,目前正在使用TreeSet。我的问题是对象的compareTo通常会返回0,这意味着这两个对象的顺序将保持不变。TreeMap(默认情况下由TreeSet使用)会将它们视为同一对象,这是不正确的。我可以使用什么替代TreeMap?用例:我有一组可显示的对象。我想按Y坐标对它们进行排序,以便它们以正确的顺序呈现。当然,两个对象很可能具有相同的Y坐标。 最佳答案 您正在定义一个比较标准,但您需要添加额外的标准。你说:Ihaveasetofdisplayableobjects.IwanttosortthembyY

java - 如何在java中检测日期是在本周内还是下周内?

如果我有一个事件的日期,例如2011-01-03,如何在java中检测它是在本周内还是下周内?有示例代码吗?编辑:我以为这是一个简单的问题,结果比我想象的要复杂,我这周的肉是:从过去的星期日到星期六,下周是从下一个星期日到星期六。 最佳答案 这在一定程度上取决于您所说的“本周”和“下周”是什么意思……但是对于JodaTime很容易确定它是在“今天还是future7天”:LocalDateevent=getDateFromSomewhere();LocalDatetoday=newLocalDate();LocalDateweekTo

java - 错误做法 - 类定义 compareTo(...) 并使用 Object.equals()

想知道需要为列出的方法做什么publicfinalintcompareTo(finalFieldDTOo){returno.available.compareTo(this.available);它在第2行抛出异常说明错误做法-类定义compareTo(...)并使用Object.equals()16天字段定义compareTo(FieldDTO)并使用Object.equals()不确定我该如何处理。提前致谢。 最佳答案 如果你定义了compareTo,你至少应该定义equalsbooleanequals(it){returnco

java - 使用 equals 和 compareTo 进行字符串比较 - 哪个更快?

我需要比较2个字符串。我有以下我能想到的方法:equalsIgnoreCase-听说这是最快的,但我不能使用它,因为我的字符串区分大小写匹配-可能是最慢的一个等于比较所以在上面的选项中,我只剩下equals和compareTo。哪个更快?注意:输入的字符串数量庞大[每秒约5000个]。 最佳答案 请注意compareTo之间的一个非常重要的区别和equals:"myString".compareTo(null);//Throwsjava.lang.NullPointerException"myString".equals(null)

java - 这个 Java 泛型范例是做什么的,它叫什么?

我正在查看一些具有以下形式的Java类:publicabstractclassA>implementsComparable{publicfinalintcompareTo(Eother){//etc}}publicclassBextendsA{//etc}publicclassCextendsA{//etc}我在这里使用“Comparable”只是为了说明通用参数“E”的可能用法。这种泛型/继承的用法有名字吗?它有什么用?我的印象是,这允许抽象类提供一个方法(例如compareTo)的通用实现,而不必在子类中提供它。但是,在此示例中,与继承方法不同,它将子类限制为在同一子类的其他实例上

java - 对原始 long 有效的 compareTo()

在处理排序列表时,我发现我需要为原始long值实现compareTo()函数。我不是在寻找明显的天真实现,而是想知道是否有优雅的单行代码可以做到这一点(无需创建新的Long(value))。也许是这样的:@OverridepublicintcompareTo(MyClassthat){return(int)((value-that.value)>>>32);}任何人都可以验证是否可行和/或建议其他实现方式吗? 最佳答案 一个线性代码:intres=Long.compare(longx,longy)您的代码不会对所有值都正确工作,尝试

java - 在 Comparable <Type> 类中实现 compareTo 时,特定的有符号整数是否重要?

在实现compareTo()时,需要考虑“差异”的程度吗?例如,如果我有3个对象,C1、C2和C3,则C1C1.compareTo(C2)应该返回一个小于C2.compareTo(C3)的整数吗?Comparable接口(interface)的文档似乎没有指定一种或另一种方式,所以我猜度数无关紧要,但很高兴知道返回特定数字是否有一些优势(对于例如,提高TreeSet排序速度之类的)。http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html#compareTo(T) 最佳答案

java - 你如何干净地实现 compareTo 方法?

目前我正在为以下形式的二次函数编写compareTo方法:ax^2+bx+c。a、b、c是通过构造函数传递给类的整数系数。在compareTo方法中,我应该首先比较两个函数之间的a系数,但如果它们相等,我会比较b系数。如果b相等,我比较c。我为此提出的方法最终变得非常丑陋:publicintcompareTo(QuadraticFunctionother){if(a>other.a)return1;elseif(aother.b)return1;elseif(bother.c)return1;elseif(c所以我想知道,如果您有这些“分层”比较系统(比如比较a之前比较b之前比较c),

Java 7 但不是 Java 6 : "is not abstract and does not override abstract method"

谁能解释为什么这在JDK1.6中编译,但在JDK1.7中却没有,我从中得到了错误消息:java:ExampleisnotabstractanddoesnotoverrideabstractmethodcompareTo(java.lang.Object)injava.lang.Comparable?importjava.util.concurrent.*;publicclassExampleimplementsScheduledFuture{@OverridepubliclonggetDelay(TimeUnitunit){return0;}@Overridepublicintcomp