Sorting collections.sort比较selectItem
我有个问题希望你能帮我, 我有一个要订购的SelectItem列表n 初始顺序为: 离异的 ledigSorting collections.sort比较selectItem,sorting,collections,compare,Sorting,Collections,Compare,我有个问题希望你能帮我, 我有一个要订购的SelectItem列表n 初始顺序为: 离异的 ledig 解除锁定 verheiratet 维特维特 我将列出如下清单: 莱迪格 已婚 离异的 verwitwet 解开 我有方法实现者,但没有正确的顺序: 公共列表getFamilienstandSelectItems() { 列出getFamilienstandSelectItems=TK_Familienstand_DS_值。getInstance().getSelectItems() Colle
解除锁定
verheiratet
维特维特 我将列出如下清单: 莱迪格 已婚 离异的 verwitwet
解开 我有方法实现者,但没有正确的顺序: 公共列表getFamilienstandSelectItems()
{
列出getFamilienstandSelectItems=TK_Familienstand_DS_值。getInstance().getSelectItems()
Collections.sort(getFamilienstandSelectItems,new Comparator()
{
公共整数比较(选择项目s1,选择项目s2)
{
如果(s1.getLabel()=“ledig”)
{
返回0;}
else if(s1.getLabel()=“verheiratet”)
{返回0;}
else if(s2.getLabel()=“geschieden”)
{返回1;}
else if(s2.getLabel()=“unbekannt”)
{return-1;}
else if(s2.getLabel()=“verwitwet”)
{返回0;}
否则返回1;
} });
返回getFamilienstandSelectItems;
}
这种方法的结果是:
莱迪格
已婚
离异的
解除锁定维特维特 少了点什么
谢谢比较方法应该告诉我们,在我现在比较的两个项目中,哪一个应该先来?负数表示第二项应放在第一位,0表示它们相等,正数表示第一项应放在第一位 因此,给每个项目类型一个数字并创建一个函数
public int getPriority(SelectItem item) {
// Give higher values to the items that should come first
}
然后在你的比较方法中做类似的事情
public int compare(SelectItem s1, SelectItem s2) {
return Integer.compare(getPriority(s1),getPriority(s2));
}
public int compare(SelectItem s1, SelectItem s2) {
return Integer.compare(getPriority(s1),getPriority(s2));
}