草庐IT

COMPARETO

全部标签

java - compareTo 如何工作?

我知道compareTo返回一个字符串与另一个字符串的相关程度的否定或肯定结果,但为什么:publicclassTest{publicstaticvoidmain(String[]args){Stringy="ab2";if(y.compareTo("ac3")==-1){System.out.println("Test");}}}为真且publicclassTest{publicstaticvoidmain(String[]args){Stringy="ab2";if(y.compareTo("ab3")==-1){System.out.println("Test");}}}也是这样

java - 写一个 public int compareTo() 方法 java

我有一个任务,需要用参数(StringbookNum、StringbookTitle、intqoh、doublebookPrice)创建BookInventory对象的数组列表。其中bookNum是一本书的带连字符的ISBN号。创建这个数组后,我需要使用Collections类的排序方法。在我的实体BookInventory类中,我需要编写一个compareTo(),它将最终按bookNum(它是一个字符串)对数组列表进行排序。我该怎么做呢?这是我第一次遇到这个,我不明白。 最佳答案 这应该让你开始:publicclassBookI

java - 无法在基本类型 double 上调用 compareTo(double)

returnarray[index1].compareTo(array[index2]);行提供了一个错误“无法在基本类型double上调用compareTo(double)”。如何解决这个问题?/*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*//*::Thisfunctionimplementsacomparatorofdoublevalues:*//*:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::*/pr

java - java.util.concurrent.Delayed 真的迫使我违反 equals/compareTo 一致性吗?

尝试使用Java的DelayQueue,我必须实现Delayed接口(interface),它需要一个compareTo()"methodthatprovidesanorderingconsistentwithitsgetDelaymethod.".目的当然是DelayQueue可以轻松地对排队的对象进行排序,以便下一个用完延迟的对象可以返回给任何接受者。现在我还需要提前从队列中删除对象。我需要调用delayQueue.remove(queuedObject)。这当然只有在排队的对象有一个equals()方法来反射(reflect)它们的有效负载而不是完全不相关的剩余延迟时间时才有效。

java - Comparable 接口(interface)的声明

当Comparable接口(interface)变成了通用的,声明变成了interfaceComparable真的应该是这样的interfaceComparable>T没有意义不延长Comparable因为实现者必须确保a.compareTo(b)和b.compareTo(a)总是有相反的符号。我一直认为声明“错误”的原因与泛化现有接口(interface)的问题有关,但我无法真正解释它。有没有人有任何见解? 最佳答案 ReallyitshouldbesomethinglikeinterfaceComparable>但这并没有真正为

java - Comparator.comparing(...) 在采用 String::compareTo 时抛出非静态引用异常

下面是我的代码片段的两行:ListlistDevs=Arrays.asList("alvin","Alchemist","brutus","larsen","jason","Kevin");listDevs.sort(Comparator.comparing(String::length));//ThisworksfinelistDevs.sort(String::compareToIgnoreCase);//Thisworksfine但是(出于经验)当我尝试写listDevs.sort(Comparator.comparing(String::compareToIgnoreCase)

java - Treeset.contains() 问题

所以我已经为一个问题苦苦挣扎了一段时间,我想我不妨在这里寻求帮助。我正在将Ticket对象添加到TreeSet,Ticket实现Comparable并覆盖了equals()、hashCode()和CompareTo()方法。我需要使用contains()检查对象是否已经在TreeSet中。现在,在向集合中添加2个元素后,一切正常,但在添加第三个元素后,它变得一团糟。在将第三个元素添加到TreeSet后运行这段代码,Tickettemp2是我正在检查的对象(verkoopLijst)。Tickettemp2=newTicket(boeking,TicketType.STANDAARD,1

java - 如果传递了错误类型的对象,我应该抛出什么类型的异常?

如果将错误类型的对象传递到我的compareTo方法中,我应该抛出什么类型的异常?ClassCastException? 最佳答案 当传入的值不正确时,一般意义上的IllegalArgumentException。然而,作为@Tom'sanswerbelow建议,对于不正确的类型,它也可能是ClassCastException。但是,我还没有遇到执行此操作的用户代码。但更根本的是,如果您将compareTo与泛型一起使用,则会出现编译时错误。考虑一下:publicclassPersonimplementsComparable{pri

java - 在 TreeSet 中,基于不同属性的自定义对象的排序和唯一性

下面是我的学生类classStudentimplementsComparable{Stringname;introllNo;@OverridepublicintcompareTo(Objectobj){return((Student)obj).name.compareTo(this.name);}}最新修改:但仍然没有得到正确的结果@OverridepublicintcompareTo(Objectobj){Students=(Student)obj;if(name.equals(s.name)){//achievinguniquenessreturn0;}else{if(rollNo

java 8 - Icomparable<T> 的注释 compareTo <T> 也添加了注释 compareTo(Object o)

我有注释packagejavaannotationtest;importjava.lang.annotation.*;@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public@interfaceCustomAnnotation{}这适用于以下类中的compareTopackagejavaannotationtest;publicclassCustomerimplementsComparable{@Override@CustomAnnotationpublicintcompareTo(Customero)