我有一个包含两种元素的列表 - 免费项目和付费项目。
我想对列表进行排序,使付费项目位于列表的第一部分,免费项目位于列表的第二部分。
我有一组比较器,如 AZ 排序、ZA 排序、类型排序。
无论是哪种排序类型,它都应始终将最终列表显示为列表第一部分中的付费项目和列表第二部分中的免费项目,并且列表中的每个集合都根据比较器(Az 或 ZA. 。ETC)。
敌人例如。
我有三个付费项目和五个免费项目。
当我对 AZ 上的完整列表进行排序时,它应该按 AZ 排序显示三个付费项目,然后按 AZ 排序顺序显示免费项目。
我想知道如何实现这一点。
使用代码片段更新:
该列表包含名称为 {APaid、MFree、OFree、BPaid、NFree、PFree、CPaid、QFree} 的项目
Collections.sort(myList, new UtilityClass.TitleComparatorAtoZ());
public static class TitleComparatorAtoZ implements Comparator
{
public int compare(Object o1, Object o2)
{
int result = 0;
if ((o1 != null) && (o2 != null))
{
if (o1 instanceof Item && o2 instanceof Item)
{
Item lmi1 = (Item) o1;
Item lmi2 = (Item) o2;
if ((lmi1.getName() != null) && (lmi2.getName() != null))
{
result = lmi1.getName().compareToIgnoreCase(lmi2.getName());
}
}
}
return result;
}
}
最终列表应该是 {APaid, BPaid, CPaid, MFree, NFree, OFree, PFree, QFree}..