在android日期和其他字符串中排序arraylist

Jua*_*val 1 sorting android arraylist

我有一个带有以下字符串的arraylist.

周二,周四,周一,周六.

我希望看起来像:

周一,周二,周四,周六.

有可能出现在周日,周三..

我有一个带有以下字符串的arraylist.

狗,兔子,牛,鸭,猫.

我希望看起来像:

兔子,猫,牛,鸭,狗.

可能吗?谢谢.

Rob*_*dob 7

是的,你应该Comparator为每个人做一个.文件

public final class MyComparator implements Comparator<String>
{
    @Override
    public int compare(String a, String b)
    {
        //Return +1 if a>b, -1 if a<b, 0 if equal
    }
}
Run Code Online (Sandbox Code Playgroud)

对于你一周中的几天,你可能想让你的比较器与此相似;

public final class MyComparator implements Comparator<String>
{
    private String[] items ={
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday",
        "sunday"
    };
    @Override
    public int compare(String a, String b)
    {
        int ai = items.length, bi=items.length;
        for(int i = 0; i<items.length; i++)
        {
            if(items[i].equalsIgnoreCase(a))
                ai=i;
            if(items[i].equalsIgnoreCase(b))
                bi=i;
        }
        return ai-bi;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后根据您的自定义顺序对您的arraylist进行排序;

MyComparator myComparator = new MyComparator();
Collections.sort(myArrayList, myComparator);
Run Code Online (Sandbox Code Playgroud)

Collections.sort()如果需要类型的默认排序(如果它实现可比较),则可以在没有第二个参数的情况下调用.文件