首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jcombobox中的linkedhashset?

使用jcombobox中的linkedhashset?
EN

Stack Overflow用户
提问于 2013-12-25 20:23:56
回答 2查看 682关注 0票数 0

我正在尝试使用MVC设计模式创建一个程序。在我的模型中,我创建了一组String。弦是大约45个地点的集合。

在我看来,我正在创建一个JComboBox。我想按照它们的顺序使用45个唯一的区域设置,所以我使用的是一个LinkedHashSet。

我很难将语言环境传递给JComboBox,有些事情我不确定。

编辑:我想知道的主要事情是如何将我的套装放到我的JComboBox中。下面是我写这篇文章时想到的几个问题。如果你愿意的话,可以随意回答!

  1. 如果我使用的是一套,这是正确的集合。
  2. 如果我使用的是LinkedHashSet,它是正确的实现吗?
  3. 我正确地使用了组合框吗?
  4. 有什么建议吗?
  5. 我对数据结构知之甚少,有什么好的资源吗?

下面是我已经使用的代码:

视图

代码语言:javascript
复制
private JComboBox<String> m_selectLocale = new JComboBox(getLocales());

LinkedHashSet<String> getLocales(){
    System.out.println("running");
    Set<String> localesSet = m_model.getLocales();
    LinkedHashSet<String> locales = new LinkedHashSet<>(localesSet);
    return locales;
}

模型

代码语言:javascript
复制
private static Set<String> localeSet = new LinkedHashSet<String>(Arrays.asList("All", "ar-ae", "ar-sa", "cs-cz", "da-dk", "de-at", "de-ch", "de-de", "el-gr", "en-ae", "en-au"));

public Set<String>getLocales(){
    return localeSet;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-25 20:38:01

我相信你可以这样做:

代码语言:javascript
复制
m_selectLocale = new JComboBox(new DefaultComboBoxModel(new Vector<String>(getLocales())));

(换句话说,通过将有序的集合传递给向量的'add from a collection‘构造函数,然后使用它来创建ComboBoxModel,从而创建一个新的向量)

更新:查看Javadoc,看起来您可以跳过一个步骤:

代码语言:javascript
复制
m_selectLocale = new JComboBox(new Vector<String>(getLocales()));

这,我相信,含蓄地为你创造了一个新的ComboBoxModel。

FWIW,如果您想要保留选择的插入顺序,我认为OrderedSet (如LinkedHashSet)是一个很好的选择。如果您想要在您的ComboBox中有一个按字母顺序排列的选项列表,您可能需要使用一个使用集合成员自然排序的OrderedSet,比如TreeSet。

票数 2
EN

Stack Overflow用户

发布于 2013-12-25 20:46:39

如果我使用的是一套,这是正确的集合。

这将取决于你希望实现什么。Set将保证唯一性。根据有限的资料,我认为这是一个不错的选择。

如果我使用的是LinkedHashSet,它是正确的实现吗?

同样,这将取决于你想要实现什么。任何链接结构都非常适合序列化访问(从开始到结束),但对于随机访问(跳入列表和任意点)则不是很好。

这可能会使它成为与组合框一起使用的错误选择。

我正确地使用了组合框吗?

考虑到代码不会编译的事实,很可能不会。JComboBox采用ComboBoxModel、数组或Vector,而不是任何类型的Set

就我个人而言,我会创建我自己的组合框模型,得到Set的支持。这样,您就不需要将Set转换成其他类型的结构,并且可以节省(少量)内存。

有什么建议吗?

阅读教程

  • 如何使用组合框
  • 集合

我对数据结构知之甚少,有什么好的资源吗?

根据最后一个问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20776480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档