gpt4 book ai didi

java - 如何避免 JComboBox 中的重复值?

转载 作者:行者123 更新时间:2023-12-02 17:01:38 24 4
gpt4 key购买 nike

enter image description here

cmbMake = new JComboBox();
cmbMake.addItem("**Please Select**");
Iterator i = products.entrySet().iterator();
while (i.hasNext())
{
Map.Entry me = (Map.Entry) i.next();
Product p = (Product) me.getValue();

if(!p.getMake().equals(cmbMake.getSelectedItem()))
{
cmbMake.addItem("" + p.getMake());
}
}

我有一个包含产品详细信息的类,是否可以阻止将相同品牌添加到组合框中?

最佳答案

您可以试试这段代码(我在您的代码中添加了一些代码)。代码获取 makes 的值并将它们存储在 Set 中集合,然后填充组合框。

cmbMake = new JComboBox();
cmbMake.addItem("**Please Select**");

Iterator i = products.entrySet().iterator();
Set<String> uniqueMakes = new HashSet<>(); // this stores unique makes

while (i.hasNext())
{
Map.Entry me = (Map.Entry) i.next();
Product p = (Product) me.getValue();

//if(! p.getMake().equals(cmbMake.getSelectedItem()))
//{
// cmbMake.addItem("" + p.getMake());
//}

uniqueMakes.add(p.getMake());
}

System.out.println(uniqueMakes); // this prints the makes

// Add makes to the combo box
for (String make : uniqueMakes) {
cmbMake.addItem(make);
}


建议:您可以在使用其中一些时使用类型参数,例如:

JComboBox<String> cmbMake = new JComboBox<>();
Iterator<Product> i = products.entrySet().iterator();

编辑:这里是关于 using Set collection 的教程和 using Generics .

编辑(使用函数式编程编写相同功能的另一种方法):

cmbMake = new JComboBox<String>();
cmbMake.addItem("**Please Select**");
products.values()
.map(product -> product.getMake())
.collect(Collectors.toCollection(HashSet::new))
.forEach(make -> cmbMake.addItem(make));

关于java - 如何避免 JComboBox 中的重复值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53917023/

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