我有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
最佳答案
使用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
关于java - 如何修复我的linkedHashSet插入顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54664103/