为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花不似锦 2019-10-14 14:00:40
在Java中将Lista 转换为a 的最简单方法是什么Set?
查看完整描述

3 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-10-14
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

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


查看完整回答
反对 回复 2019-10-14
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

如果您使用Guava库:


Set<Foo> set = Sets.newHashSet(list);

或更好:


Set<Foo> set = ImmutableSet.copyOf(list);


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 616 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信