繁体   English   中英

如何将ArrayList比较器与自定义插入排序方法一起使用

[英]How to use ArrayList comparator with custom insertion sort method

这是一项任务,我无法发布整个代码,但我确实需要了解我在做什么错。 我确定这是菜鸟的错误。

我必须构造一个自定义的排序方法,该方法可以对我的arraylist对象的特定属性进行排序。 我创建了不同的比较器来处理要排序的对象中的不同元素。

*编辑添加了更多代码

排序实用程序方法(需要参数):

public class CarManage{
    private ArrayList <Car> carList;    //carList defined

    public class Sorts {
        public static void sorts(Car[]carList, int size, Comparator <Car> someComparator)   //given parameters not allowed to modify
        {
            //sorts arrayList(carList) objects using an insertion sort algorithm.
        }
    }
}   //end class

我尝试调用sort方法,以指定需要排序的属性,但是可惜它拒绝了第一个参数。

 public void sortByVinNumber(){
  VinNumComparator vnc = new VinNumComparator();//one of many comparators
  Sorts vncSort = new Sorts();

  for(int i = 0; i < carList.size(); i++){
        if(vnc.compare(carList.get(i-1), carList.get(i)) > 0){           
        vncSort.sorts(Car[]carList, 2, vnc);//not working here rejects first parameter
        ///vncSort.sorts(carList,2,vnc)///doesn't work
        }
    }
 } 

我不确定为什么它不接受我的参数? 可能是通过参考错误吗? 还是我可能称该方法错误?

您需要像这样调用方法:

vncSort.sorts(carList, 2, vnc);

另外,似乎您正在将数组与ArrayList混淆。 汽车数组将是Car[] ArrayList<Car>是一个接受并产生Car类型的List 之所以称为ArrayList是因为它在内部由数组支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM