java中的集合未进行排序并出现错误
我正在尝试对列表进行排序,但比较器有问题。我的列表是A,我试图按某个整数排序,但我得到了错误。。。我不能使用lamda表达式或继承。。。任何帮助 代码:java中的集合未进行排序并出现错误,java,Java,我正在尝试对列表进行排序,但比较器有问题。我的列表是A,我试图按某个整数排序,但我得到了错误。。。我不能使用lamda表达式或继承。。。任何帮助 代码: List<?> sortbenefitList = new ArrayList(); List<SelectItem> sortedBenefitList = new ArrayList<SelectItem>(); Map<String,Integer> map=new
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);
}
});
}
以上是我的代码。您的代码应该如下所示: 您不需要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()));
}
};
欢迎来到Stackoverflow,请阅读。特别注意。确保用适当的标签、编程语言、相关技术等为你的问题贴上标签。你在发布一个好的问题上投入的精力越多:一个容易阅读、理解的问题,而且是一个好问题——它吸引相关人员的机会就越高,你得到帮助的速度就越快。祝你好运如果您也添加代码,这会有所帮助。。无法从问题帮助我们帮助您-共享您的代码、您得到的结果和您想要得到的结果中了解问题抱歉,我已经添加了我的代码。非常感谢您的帮助。我无法使用lamda exp…: