我有一个数组列表,其中包含以下字符串.
星期二,星期四,星期一,星期六。
我想表现得像:
星期一,星期二,星期四,星期六。
有可能出现在星期天,星期三。
和我有一个数组列表,其中包含以下字符串.
狗,兔子,牛,鸭子,猫。
我想表现得像:
兔子,猫,牛,鸭子,狗。
有可能吗?谢谢。
发布于 2013-08-15 13:38:46
是的,你应该为每个人做一个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()
。文档
https://stackoverflow.com/questions/18253851
复制相似问题