Collections.sort排序时,重写Comparator自定义排序报java.lang.AbstractMethodError异常,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Collections.sort排序时,重写Comparator自定义排序报java.lang.AbstractMethodError异常,相关的知识,希望对你有一定的参考价值。

Collections.sort(commInsList, new Comparator<Product>()
/* int compare(Product o1, Product o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
public int compare(Product o1,Product o2)
//按照产品的序号进行升序排列
if(Integer.parseInt(o1.getAttributeValueByKind("NUMBER"))>Integer.parseInt(o2.getAttributeValueByKind("NUMBER")))
return 1;

if(o1.getAttributeValueByKind("NUMBER")==o2.getAttributeValueByKind("NUMBER"))
return 0;

return -1;

);

参考技术A 那你应该对你的数据根据你要处理的变量进行一个比较排序, 如果是ArrayList可以通过collections类的sort方法来进行排序,如果想自定义排序方式则可以类通过实现Comparator接口并重写compare方法调用sort方法时将ArrayList对象与实现Commparator

List排序Collections.sort 重写compare

 1 static List<Integer> intList = Arrays.asList(2,5,7, 3, 1);
 2 
 3       public static void main(String[] args) { 
 4           
 5           System.out.println("before sort:");
 6             PrintUtil.showList(intList);
 7             System.out.println("=========================");
 8             Collections.sort(intList,new Comparator<Integer>() {
 9 
10                 public int compare(Integer o1, Integer o2) {
11                     // 返回值为int类型,大于0表示正序,小于0表示逆序
12                     System.out.println("o2-o1:"+(o2-o1)+"========o2="+o2+"o1="+o1);
13                     if(o2>o1){
14                         return -1;    
15                     }else{
16                         return 1;    
17                     }
18                 }
19             });
20             System.out.println("after sort:");
21             PrintUtil.showList(intList);
22           
23     }

根据需求排序,方法内比较两个对象的参数哪个优先,返回值为int类型,大于0表示正序,小于0表示逆序

以上是关于Collections.sort排序时,重写Comparator自定义排序报java.lang.AbstractMethodError异常,的主要内容,如果未能解决你的问题,请参考以下文章

List排序Collections.sort 重写compare

sort方法和自定义比较器的写法

List排序Collections.sort()

Java里面的Collections.sort(list)。 sort这个方法在API哪里能找的到

java List的排序

Java中Collections.sort()的用法