草庐IT

comparator

全部标签

java - 结合可变参数和泛型以在 Java 中进行链式比较

这是一个棘手的问题。我在同时使用可变参数和泛型之间存在冲突。按照给定的代码:publicclassMyObjectimplementsComparable{privateStringname;privateintindex;@OverridepublicintcompareTo(MyObjecto){if(name.compareTo(o.name)!=0)returnname.compareTo(o.name);return((Integer)index).compareTo(o.index);}}我想要compareTo使用多个比较条件的方法。如果字符串相同,则改用整数。我会说通常

java - 使用 Java 比较器按另一个列表对对象列表进行排序

有两个输入列表如下:inputA=[{name:"A",age:20},{name:"B",age:30},{name:"C",age:25},{name:"D",age:28}]inputB=["D","B"]我的首选输出列表必须如下所示:expectedOutput=[{name:"D",age:28},{name:"B",age:30},{name:"A",age:20},{name:"C",age:25}]到目前为止我所做的如下所示:AtomicIntegercount=newAtomicInteger();Collections.sort(inputA,Comparator.

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 - 泛型 - (elements instanceof List<? extends Comparable>) 的合法替代品

我有一个唯一参数(Listelements)将元素设置为ListModel的方法,但我需要进行验证以查看通用类型是否实现了可比性,因为这样的事情:if(elementsinstanceofList)是非法的,我不知道如何进行正确的验证。更新我已经使用以下方法完成了此验证:(elements.size()>0&&elements.get(0)instanceofComparable)但我想知道是否有更清洁的解决方案,例如使用反射?提前致谢。 最佳答案 列表的通用类型是erasedatruntime.为此,您需要在方法签名中要求参数或单

java - equals() 的实现 : compare against implemented interface or implementing class?

我一直想知道如何最好地为所有实现相同接口(interface)的类系列实现equals()(并且客户端应该只使用所述接口(interface)并且永远不知道实现类)。我还没有编写自己的具体示例,但JDK中有两个示例-java.lang.Number和java.lang.CharSequence可以说明该决定:booleanb1=newByte(0).equals(newInteger(0)));或使用CharSequencebooleanb2="".equals(newStringBuilder());理想情况下,您是否希望这些评估为真或假?这两种类型都实现了相同的数据类型接口(int

用于多列排序的 Java 比较器?

有没有Java开源比较器可以比较多字段的bean进行多列排序?每列都可以按升序或降序排序。对于单列排序,可以通过使用org.apache.commons.beanutils.BeanComparator和org.springframework.util.comparator.InvertibleComparator来实现。我知道编写此功能非常简单,但如果已经编写并测试过,重新发明轮子有什么好处? 最佳答案 这是我几个月前写的。publicabstractclassChainedComparatorimplementsComparat

Java:使用indexOf方法基于另一个数组对数组进行排序

我想根据另一个数组(索引)的排序顺序遍历两个数组(A、B),在本例中为10、34、32、21。String[]A:a,b,c,dString[]B:e,f,g,hint[]indexes:10,34,32,21Apologyforthebadexamplehere.Ihaveupdatedtheindexesarraytocleartheconfusion.预期的输入和输出输入是三个数组。我想使用索引数组的排序来遍历A、B。即我想找到一种方法来使用顺序(a,d,c,b)迭代A并使用顺序(e,h,g,f)迭代B我的方法:我用我认为与另一种方法相同的解决方案解决了这个问题。但是,第二种方法

java - MyClass 无法转换为 java.lang.Comparable : java. lang.ClassCastException

我正在做一个java项目,我遇到了这个问题,不知道如何解决。我项目中的类(简化):publicclassItem{privateStringitemID;privateIntegerprice;publicIntegergetPrice(){returnthis.price;}}publicclassStore{privateStringstoreID;privateStringaddress;}publicclassStock{privateItemitem;privateStorestore;privateIntegeritemCount;publicIntegergetInven

java - 按作为输入给出的字段使用 Java 8 进行排序

我有一个REST端点,我希望UI传递他们想要按“id”、“name”等对结果进行排序的字段名称。我想出了下面的方法,但实际上是在尝试使用反射/泛型,这样它就可以扩展到包含我项目中的每个对象。如果我想为100个不同的类提供相同的功能,我觉得这个解决方案不容易维护。publicstaticvoidsort(Listcollection,Stringfield){if(collection==null||collection.size()关于如何更好地实现它以便将其扩展为适用于几乎不需要维护的企业应用程序的任何想法? 最佳答案 原帖我不会

java - 根据对象中的变量从对象列表中获取对象

我有用户对象列表,我只想根据用户对象中的变量从列表中获取用户对象。publicclassUser{privateintid;privateStringsex;privateintage;privateStringcountry;/***Getterandsetterforallvariables*/}我有一个这样的模型类。现在我有了用户对象列表。Listusers=newArrayList();如果用户是男性,我想从用户列表中获取对象。ListageList=newArrayList();for(Userobject:users){if(object.getSex().equals("