gpt4 book ai didi

java - ArrayList的排序

转载 作者:行者123 更新时间:2023-12-02 13:25:43 25 4
gpt4 key购买 nike

我有一个数组列表

ArrayList itemListWithRank = ItemListDAO.getItemList();

在 arraylist itemListWithRank 中,有很多类型的对象值,它们都是不同的。其中一个值是项目排名,也使用该数组列表进行设置。

现在我想根据排名的升序对这个数组列表进行排序。排名值已在此数组列表中设置。

我如何对具有多种值类型的数组列表进行排序......?

谢谢大家...

最佳答案

使它们都是某种类型的对象。设计一个公共(public)基类或一个接口(interface)

然后

使用比较器对它们进行排序

例如。

public class SortableFields{
protected long rank;
//accessors methods
}

假设arraylist中的所有对象现在都是SortableFields

现在

Collections.sort(list,new Comparator(){
public int compareTo(Object ob1,Object ob){
return ((SortableFild)ob1.getRank())-((SortableFild)ob2.getRank())
}
});
<小时/>

或者使用反射黑客,不推荐

Collections.sort(list,new Comparator(){
public int compareTo(Object ob1,Object ob){
UtilClass.getRank(ob1)-UtilClass.getRank(ob);
}
});

在你的 UtilClass 中

public int getRank(Object ob){

Class cl=ob1.getClass();
Method mthd=cl.getMethod("getRank");
Integer output=(Integer)mthd1.invoke(ob);
return output;

}

关于java - ArrayList的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5309136/

25 4 0