草庐IT

comparator

全部标签

java - 使用 Comparators 帮助比较 float 成员变量

我能够很好地比较字符串,但想知道如何对float进行排序?getChange()返回一个字符串。我希望能够降序排序。我该怎么做?更新:packageorg.stocktwits.helper;importjava.util.Comparator;importorg.stocktwits.model.Quote;publicclassChangeComparatorimplementsComparator{publicintcompare(Quoteo1,Quoteo2){floatchange1=Float.valueOf(o1.getChange());floatchange2=Fl

java - scala中的Covariant Typeparameter需要在java接口(interface)中不变

我有一个看起来像这样的特征(一些进一步的信息可以在thisrelatedquestionbymyself找到,虽然我不认为,这个问题需要它)traitExtractor[-A,+B]{defextract(d:A):B//lotsofotherthings}要在现有的java框架中使用它,我希望这个Extractor有一个返回Comparator[B]的函数(即java.util.Comparator),甚至更好地扩展Comparator[A]。现在这带来了一个问题,因为Comparator的类型参数应该是不变的,而A是逆变的而B是协变的。所以我得到这样的错误:scala>import

java - 比较器应该每次都实例化还是只实例化一次?

对于自定义比较器,每次都实例化它而不是将其创建为常量(使用匿名类)并使用单个实例是否有任何优势?我一直认为每次都创建一个新实例没有任何优势,并且一直采用选项#2(静态最终字段中的单个实例)。publicclassSomeClass{//Firstoption:privatestaticclassSomeCustomComparatorimplementsComparator{publicintcompare(SomeObjecto1,SomeObjecto2){/*implementation*/}}//Secondoption:privatestaticfinalComparator

java - 如何从 Set 和 Comparator 获取列表

从Set获取List并根据给定的Comparator排序的“好”(为什么?)解决方案是什么? 最佳答案 Setset=newHashSet();//addstuffListlist=newArrayList(set);Collections.sort(list,newMyComparator()); 关于java-如何从Set和Comparator获取列表,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

java - 如何使用比较器接口(interface)

我是Java的新手,我不太了解如何使用比较器接口(interface)。我在Inventory类和Item类中有一个包含Item的ArrayList。在Item类中我写了:publicclassItemimplementsComparator{//stuff...@Overridepublicintcompare(Itema,Itemb){if(a.getID().compareToIgnoreCase(b.getID())>0)return1;elseif(a.getID().compareToIgnoreCase(b.getID())getID()方法只提供id,我必须使用它来按字

java - 如何在 Java 中按字母顺序对枚举成员进行排序?

我有一个像下面这样的枚举类:publicenumLetter{OMEGA_LETTER("Omega"),GAMMA_LETTER("Gamma"),BETA_LETTER("Beta"),ALPHA_LETTER("Alpha"),privatefinalStringdescription;Letter(){description=toString();}Letter(Stringdescription){this.description=description;}publicStringgetDescription(){returndescription;}}稍后在我的代码中,我基

java - java 是否提供内置的静态 String.Compare 方法?

在比较字符串时,我不喜欢依赖实例方法,以免调用该方法的字符串恰好为空。在.NET中,我只使用静态String.Compare(string,string,bool)方法。Java是否提供类似的内置“空安全”字符串比较实用程序,还是我必须实现自己的实用程序? 最佳答案 不,JDK不包含此类实用程序。然而,有几个外部库可以做到这一点。例如org.apache.commons.lang.StringUtils提供空安全的equals(String,String)和equalsIgnoreCase(String,String)。Guava也

java - 推断类型不是 Comparable 泛型类型的有效替代品

考虑代码:publicabstractclassItemimplementsComparable{protectedTitem;publicintcompareTo(To){return0;//thisdoesn'tmatterforthetimebeing}}publicclassMyItemextendsItem{Tobject;}publicclassFoo{protectedArrayListlist;}publicclassBarextendsFoo>{publicvoidsort(){Collections.sort(list);}}排序调用给出错误:Boundmismat

Java 8 Comparator nullsFirst naturalOrder 混淆

这可能是一个简单的问题,但我想清楚地理解它......我有这样的代码:publicfinalclassPersona{privatefinalintid;privatefinalStringnamepublicPersona(finalintid,finalStringname){this.id=id;this.name=name;}publicintgetId(){returnid;}publicStringgetName(){returnname;}@OverridepublicStringtoString(){return"Persona{"+"id="+id+",name="+

java - 实现 Comparable、compareTo 名称冲突 : "have the same erasure, yet neither overrides the other"

我想要一个compareTo方法,它接受一个Real(一个用于处理任意大且精确的实数的类[好吧,只要它现在的长度小于2^31])和一个compareTo接受对象的方法,但Java不允许,而且我没有足够的经验知道原因。我刚刚尝试修改类以实现Comparable,但在下面收到了这些错误消息。我真的不明白错误消息是什么意思,但我知道这与我试图通过我创建的每个方法的所有不同方法签名为类提供一些灵active的可怕方式有关,我可以修复它通过删除compareTo(Objectother)方法,但理想情况下我想保留它。所以我真正想问的是:有没有一种方法可以在不删除compareTo(Objecto