Java primefaces SelectOne菜单未排序

Java primefaces SelectOne菜单未排序,java,Java,我的页面中有一个selectonemenu,我从我的支持bean中获取它的内容。但是selectonemenu的内容没有排序。下面是代码 <p:selectOneMenu id="Department" value="#{search.selectedDepartment}"> <f:selectItem itemLabel="Select Department" itemValue="" /> <f:

我的页面中有一个selectonemenu,我从我的支持bean中获取它的内容。但是selectonemenu的内容没有排序。下面是代码

    <p:selectOneMenu id="Department" value="#{search.selectedDepartment}">  
            <f:selectItem itemLabel="Select Department" itemValue="" />  
            <f:selectItems value="#{search.departments}" />  

        </p:selectOneMenu> 

还有我的豆子

public class SearchBean implements Serializable {

private Map<String, Map<String, String>> courseData = new HashMap<String, Map<String, String>>();

private Map<String, String> departments = new HashMap<String, String>();
private String selectedDepartment;


    departments.put("department1",
            "department1");
    departments.put("department2",
            "department2");
    departments.put("department3", "department3");
departments.put("department4", "department4");
departments.put("department5", "department5");





//getters setters...


}
public类SearchBean实现可序列化{
private Map courseData=新HashMap();
私有映射部门=新HashMap();
私有字符串选择部门;
部门。付诸表决(“部门1”,
“部门1”);
部门。付诸表决(“部门2”,
“部门2”);
部门。put(“部门3”、“部门3”);
部门。put(“部门4”、“部门4”);
部门。put(“部门5”、“部门5”);
//getters setters。。。
}

和selectonemenu的内容分别不是department1、department2、department3、department4和department5。它没有排序。

它没有排序,因为
HashMap
没有可预测的迭代顺序。试试看。

使用LinkedHashMap它是按顺序排列的,而不是按您放置项目的顺序排列的,但是如果您使用树形图,它会按字母顺序排列。

很好的答案。简单但很重要。谢谢,你让我高兴极了。Thanx太多了。按键或值的字母顺序排列?它在树状图中按键的字母顺序排列