首页 > 解决方案 > java中的集合没有得到排序并给出错误

问题描述

我正在尝试对列表进行排序,但比较器有问题。我的列表是 A,我正在尝试按某个 int 排序,但出现错误...而且我不能使用 lamda 表达式或继承...任何帮助...

代码 :

List<?> sortbenefitList = new ArrayList();
List<SelectItem> sortedBenefitList = new ArrayList<SelectItem>();
            Map<String,Integer> map=new HashMap<String, Integer>();
            for(IBen benefit : benefitList){
                Collections.sort(benefitList, benefit.getStartSegmentNumber());

                SelectItem item = new SelectItem();
                item.setValue(benefit.getBenefitId().toString());
                item.setLabel(benefit.getStartSegmentNumber().toString());
                sortedBenefitList.add(item);
            }
            if(sortedBenefitList != null && !sortedBenefitList.isEmpty()){
                Collections.sort(benefitList, benefit.getStartSegmentNumber().toString()) {

                    public int compare(SelectItem a1, SelectItem a2) {
                        String a1Lebel = a1.getLabel();
                        String a2Lebel = a2.getLabel();
                        Integer a1Int = Integer.parseInt(a1Lebel);
                        Integer a2Int = Integer.parseInt(a2Lebel);
                        a1Int.compareTo(a2Int)
                        map.put();
                        return a1Int.compareTo(a2Int);
                    }
                });
            }

以上是我的代码。

标签: java

解决方案


您的代码应如下所示:您不需要 2 个列表。只有一个。sort 方法将对它传递的列表进行排序

List<SelectItem> benefitList = new ArrayList<SelectItem>();
//add items
Comparator<SelectItem> comparator = (o1, o2) -> Integer.compare(Integer.parseInt(o1.getLabel()), Integer.parseInt(o2.getLabel()));
Collections.sort(benefitList, comparator);

您也可以使用比较 int :

Comparator<SelectItem> comparator = Comparator.comparingInt(o -> Integer.parseInt(o.getLabel()));

或者如果您不能使用 lambda,请使用匿名类

Comparator<SelectItem> comparator = new Comparator<SelectItem>() {
  @Override
  public int compare(SelectItem o1, SelectItem o2) {
    return Integer.compare(Integer.parseInt(o1.getLabel()), Integer.parseInt(o2.getLabel()));
  }
};

推荐阅读