如何防止Set集合中的SelectItem重复

时间:2013-09-23 19:39:49

标签: jsf duplicates selectonemenu

我正在尝试将SelectItem对象添加到Set集合中。但是,正在添加重复值。有没有办法防止这些重复值?

for(String s: list) {       
  Set<SelectItem> typeSet = new HashSet<SelectItem>();
  typeSet.add(new SelectItem(s));
}

1 个答案:

答案 0 :(得分:2)

只需使用Set<String>代替Set<SelectItem>。根本没有实现SelectItem#equals() / #hashCode()来考虑实际值。

private Set<String> typeSet;

@PostConstruct
public void init() {
    List<String> list = getItSomehow();
    typeSet = new LinkedHashSet<String>(list);
}

因为JSF2也可以在<f:selectItems>上使用。

<f:selectItems value="#{bean.typeSet}" />

另见: