猿问

在Java中将列表转换为集合的最简单方法

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



繁花不似锦
浏览 617回答 3
3回答

吃鸡游戏

Set<Foo> foo = new HashSet<Foo>(myList);

牧羊人nacy

我同意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的更有效实现。

慕标琳琳

如果您使用Guava库:Set<Foo> set = Sets.newHashSet(list);或更好:Set<Foo> set = ImmutableSet.copyOf(list);
随时随地看视频慕课网APP

相关分类

Java
我要回答