在Java中将列表转换为集合最简单的方法?
我同意sepp2k,但还有一些其他细节可能很重要:
new HashSet<Foo>(myList);
会给你一个没有重复的未排序的集合。在这种情况下,使用对象上的.equals()方法来识别重复。这与.hashCode()方法结合使用。(更多关于平等看这里)
给出有序集合的替代方案是:
new TreeSet<Foo>(myList);
这在Foo实现Comparable的情况下有效。如果没有,那么你可能想使用比较器:
Set<Foo> lSet = new TreeSet<Foo>(someComparator);
lSet.addAll(myList);
这取决于compareTo()(来自可比较的接口)或compare()(来自比较器)以确保唯一性。所以,如果你只关心唯一性,使用HashSet。如果你排序后,然后考虑TreeSet。(记住:稍后优化!)如果时间效率问题使用HashSet,如果空间效率很重要,请查看TreeSet。请注意,通过Trove(和其他位置)可以更有效地执行Set和Map。