Java - 对象的不同列表

2022-09-01 06:18:10

我有一个对象列表/集合,这些对象可能具有相同的属性值,也可能不具有相同的属性值。获取具有相同属性的对象的不同列表的最简单方法是什么?一种集合类型是否最适合此目的?例如,在 C# 中,我可以对 LINQ 执行如下操作。

var recipients = (from recipient in recipientList
                 select recipient).Distinct();

我最初的想法是使用lambdaj(链接文本),但它似乎不支持这一点。


答案 1
return new ArrayList(new HashSet(recipients));

答案 2

使用接口的实现(类 T 可能需要自定义方法,您可能必须自己实现)。通常 a 开箱即用 :它使用和方法来比较对象。对于简单对象来说,这应该足够独特。如果没有,则必须相应地实施。Set<T>.equals().equals()HashSetObject.hashCode()Object.equals()T.equals()T.hashCode()

请参阅下面的Gaurav Saini的评论,了解有助于实现等式和哈希码的库。