SelectItem オブジェクトを Set コレクションに追加しようとしています。ただし、重複する値が追加されています。これらの重複した値を防ぐ方法はありますか?
for(String s: list) {
Set<SelectItem> typeSet = new HashSet<SelectItem>();
typeSet.add(new SelectItem(s));
}
SelectItem オブジェクトを Set コレクションに追加しようとしています。ただし、重複する値が追加されています。これらの重複した値を防ぐ方法はありますか?
for(String s: list) {
Set<SelectItem> typeSet = new HashSet<SelectItem>();
typeSet.add(new SelectItem(s));
}
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}" />