我有一个带有以下字符串的数组列表。
周二、周四、周一、周六。
我希望看起来像这样排序:
周一、周二、周四、周六。
有可能出现在周日、周三..
我有一个带有以下字符串的数组列表。
狗,兔子,牛,鸭,猫。
我希望看起来像这样排序:
兔子,猫,牛,鸭,狗。
可能吗?谢谢你。
是的,你应该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
}
}
对于您一周中的日子,您可能希望使您的比较器与此类似;
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;
}
}
然后根据您的自定义顺序对您的数组列表进行排序;
MyComparator myComparator = new MyComparator();
Collections.sort(myArrayList, myComparator);
Collections.sort()
如果您需要类型的默认排序(如果它实现可比较),则可以不带第二个参数调用。文档