我试图找到一种数据结构,该数据结构可用于保存TableView数据,但不允许重复的项。如果我不需要用于TableView的ObservableList(更确切地说是ObservableList),则可以使用HashSet,但可以。
我考虑过为此创建一个实现ObsevableList的新类,因为我真的不想拥有2个数据结构,例如ObservableSet和ObservableList。
有人知道任何解决方案吗?
答案 0 :(得分:0)
首先确定相等条件以及使对象重复的原因。然后在您的类中覆盖equals
和hashcode
方法。 (如果使用的是String或Integer之类的类,则应该已经定义好了。)然后,当您尝试向表中添加对象时,只需检查表是否已包含该项目:
if(!table.getItems().contains(newItem)) table.getItems.add(newItem);
或者如果您不是一个接一个地添加对象,则可以使用Java8 Stream API:
table.getItems().setAll(table.getItems().stream().distinct().collect(Collectors.toList()));