無料アイテムと有料アイテムの 2 種類の要素を含むリストがあります。
有料アイテムがリストの最初の部分に、無料アイテムがリストの 2 番目の部分になるようにリストを並べ替えたいと思います。
AZソート、ZAソート、タイプソートなどの一連のコンパレータがあります。
並べ替えの種類が何であれ、最終的なリストは常にリストの最初の部分に有料アイテムとして表示され、リストの 2 番目の部分に無料アイテムとして表示され、コンパレータ (Az または ZA. 。等)。
敵例えば。
3 つの有料アイテムと 5 つの無料アイテムがあります。
リスト全体を AZ で並べ替えると、3 つの有料アイテムが 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}..