Sorting collections.sort比较selectItem

Sorting collections.sort比较selectItem,sorting,collections,compare,Sorting,Collections,Compare,我有个问题希望你能帮我, 我有一个要订购的SelectItem列表n 初始顺序为: 离异的 ledig 解除锁定 verheiratet 维特维特 我将列出如下清单: 莱迪格 已婚 离异的 verwitwet 解开 我有方法实现者,但没有正确的顺序: 公共列表getFamilienstandSelectItems() { 列出getFamilienstandSelectItems=TK_Familienstand_DS_值。getInstance().getSelectItems() Colle

我有个问题希望你能帮我, 我有一个要订购的SelectItem列表n

初始顺序为: 离异的 ledig
解除锁定
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));
}