在Java中将List转换为Set的最简单方法
我同意sepp2k的观点,但还有一些可能很重要的细节:
new HashSet(myList);
将为您提供一个未排序的集合,该集合不包含重复项。在这种情况下,使用您的对象的.equals()方法来标识重复项。这与.hashCode()方法结合使用。(有关相等性的更多信息,请参见此处)
提供排序集合的替代方法是:
new TreeSet(myList);
如果Foo实现了Comparable,则此方法可行。如果没有实现,则可以使用比较器:
SetlSet = new TreeSet (someComparator); lSet.addAll(myList);
这取决于compareTo()(来自comparable接口)或compare()(来自comparator)以确保唯一性。因此,如果您只关心唯一性,请使用HashSet。如果您想排序,则请考虑TreeSet。(记住:后期优化!)如果时间效率很重要,请使用HashSet;如果空间效率很重要,请考虑TreeSet。请注意,通过Trove(和其他位置)提供了更有效的Set和Map实现。