gpt4 book ai didi

java - 如何修复我的 linkedHashSet 插入顺序

转载 作者:行者123 更新时间:2023-12-01 06:02:16 25 4
gpt4 key购买 nike

我已添加 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以该顺序。我希望输出的顺序相同。但是,我从 Controller 得到的实际输出:
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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com