我们怎样才能在Guava api的帮助下从List中删除重复项?
目前我正在关注此事:
private List<T> removeDuplicate(List<T> list){
return new ArrayList<T>(new LinkedHashSet<T>(list));
}
Run Code Online (Sandbox Code Playgroud) 我需要存储大量信息,例如java列表中的"名称".项目数量可以改变(或者简而言之,我不能预定义大小).我认为从内存分配的角度来看,LinkedList比ArrayList更好,对于ArrayList,一旦达到最大大小,内存分配自动加倍,因此总是有可能分配比内存更多的内存.需要什么.
我从其他帖子中了解到,存储在LinkedList中的各个元素比ArrayList占用更多空间,因为LinkedList也需要存储节点信息,但我仍然猜测我已定义的场景LinkedList可能是更好的选择.此外,我不想进入性能方面(获取,删除等),因为已经讨论过很多内容.
我有一个列表/对象集合,可能有也可能没有相同的属性值.获得具有相同属性的对象的明确列表的最简单方法是什么?一种集合类型最适合此目的吗?例如,在C#中,我可以使用LINQ执行以下操作.
var recipients = (from recipient in recipientList
select recipient).Distinct();
Run Code Online (Sandbox Code Playgroud)
我最初的想法是使用lambdaj(链接文本),但它似乎不支持这一点.