据我了解,Set
可以帮助防止重复记录,但不能排序。
如果使用List
,那么它可以排序,但我不能防止重复记录。
如果我使用TreeSet
,则TreeSet
中的对象必须实现Comparable
,这需要对我的项目进行大的更改,如果可能的话,我不想更改此项。
也许我可以将Set
转换为List
,然后对其进行排序。但是,我的程序遵循有点复杂,意味着在我对其进行排序后,我仍然需要在此list
内添加对象,同时,我想防止重复,所以,为此,我必须再次将已排序的List
转换为Set
,然后只在里面添加新对象。
我想寻找一种方法,可以根据对象值对我的收藏进行排序,同时防止重复记录。
希望我不会在此问错误。
答案 0 :(得分:9)
TreeSet
似乎最适合您的要求。
如果我使用TreeSet,那么TreeSet中的对象必须实现Comparable
那不是真的。 TreeSet
不要求您的元素类型实现Comparable
。您可以将Comparator
传递给TreeSet
构造函数。
由于您的元素类型未实现Comparable
,如果您要对Comparator
进行排序,则无论如何都需要List
,因此不会对{{1}进行排序},将List
与Comparator
一起使用。