我正在尝试将SelectItem对象添加到Set集合中。但是,正在添加重复值。有没有办法防止这些重复值?
for(String s: list) {
Set<SelectItem> typeSet = new HashSet<SelectItem>();
typeSet.add(new SelectItem(s));
}
答案 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}" />