gpt4 book ai didi

java - SmartGWT - 组合框项中值的有序 View

转载 作者:行者123 更新时间:2023-11-30 04:22:11 26 4
gpt4 key购买 nike

我正在使用 Java7 和 SmartGWT 3.1。我遇到以下代码,这些值没有按照我输入的顺序显示。

LinkedHashMap<Integer, String> insertOrdered = new LinkedHashMap<Integer, String>();
for (MyEnum me : MyEnum.values()) {
insertOrdered.put(me.getId(), me.getMyName());
}
ComboBoxItem cbi = new ComboBoxItem();
cbi.setValueMap(insertOrdered);

ID 未排序(既不升序也不降序)。但是,这应该不重要,因为如果我没有完全弄错的话,LinkedHashMap 会按照插入顺序排序。为了确保我再次检查了 JavaDoc ( http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html ),情况确实如此。

为什么ComboBoxItem忽略我的订单?还有其他方法可以在 ComboBoxItem 中实现排序吗?

最佳答案

LinkedHashMap 的 Javadoc 指出:

This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.

尽管如此,我同意它们出现的顺序应该是它们在枚举中声明的顺序,如JLS所述。 。如果您在使用 LinkedHashMap 时遇到问题并且您确实想确保此顺序,也许您可​​能想尝试使用 variable argument list method 设置值。 。您实际上会将其更改为数组,这可能是不需要的,但它可能会解决您的问题。

List<String> list = new ArrayList<String>();
for(MyEnum me: MyEnum.values()){
list.add(me.getMyName());
}

ComboBoxItem cbi = new ComboBoxItem();
cbi.setValueMap(list.toArray(new String[list.size()]));

关于java - SmartGWT - 组合框项中值的有序 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16770102/

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