在Java中将List转换为Set的最简单方法

42 浏览
0 Comments

在Java中将List转换为Set的最简单方法

什么是在Java中将List转换为Set的最简单方法?

admin 更改状态以发布 2023年5月21日
0
0 Comments

我同意sepp2k的观点,但还有一些可能很重要的细节:

new HashSet(myList);

将为您提供一个未排序的集合,该集合不包含重复项。在这种情况下,使用您的对象的.equals()方法来标识重复项。这与.hashCode()方法结合使用。(有关相等性的更多信息,请参见此处

提供排序集合的替代方法是:

new TreeSet(myList);

如果Foo实现了Comparable,则此方法可行。如果没有实现,则可以使用比较器:

Set lSet = new TreeSet(someComparator);
lSet.addAll(myList);

这取决于compareTo()(来自comparable接口)或compare()(来自comparator)以确保唯一性。因此,如果您只关心唯一性,请使用HashSet。如果您想排序,则请考虑TreeSet。(记住:后期优化!)如果时间效率很重要,请使用HashSet;如果空间效率很重要,请考虑TreeSet。请注意,通过Trove(和其他位置)提供了更有效的Set和Map实现。

0
0 Comments

Set foo = new HashSet(myList);

(直接返回原文,因为没有需要翻译的内容)

0