我已将3个部门添加到
Set<String> workFlowDepartmentList = new LinkedHashSet<>();
,并且应该由谁来添加。但是,我的集合按升序添加它们。我该如何解决?谢谢。
我什至尝试通过使用add();
首先添加/添加谁来手动将这3个部门添加到我的集合中。
//xhtml
<h:selectManyMenu styleClass="chosen-select2" id="input-workFlowCode"
value="#{EmployeeClearanceController.workFlowDepartmentList}">
<f:selectItems value="#{EmployeeClearanceController.departmentList}" var="dept"
itemValue="#{dept.departmentCode}" itemLabel="#{dept.name}"/>
f:ajax execute="change"/>
</h:selectManyMenu>
//controller
/* What i tried to add manually [worked]
workFlowDepartmentList.add("D0002-25");
workFlowDepartmentList.add("D0002-13");
workFlowDepartmentList.add("D0002-26");
*/
for(String dept : workFlowDepartmentList){
System.out.println("dept: " + dept);
}
在我的<h:selectManyMenu>
中,我已依次选择D0002-25, D0002-13, D0002-26
。
我希望输出以相同的顺序类似。但是,我从控制器获得的实际输出是:
dept: D0002-13
dept: D0002-25
dept: D0002-26
答案 0 :(得分:-1)
使用TreeSet代替LinkedHashSet。
TreeSet<String> workFlowDepartmentList = new TreeSet<>();
workFlowDepartmentList.add("D0002-25");
workFlowDepartmentList.add("D0002-13");
workFlowDepartmentList.add("D0002-26");
for (String dept : workFlowDepartmentList) {
System.out.println("dept: " + dept);
}
Output be like this::
dept: D0002-13
dept: D0002-25
dept: D0002-26