当前位置: 首页 > 面试题库 >

Java-不同的对象列表

祁宝
2023-03-14
问题内容

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

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

我最初的想法是使用lambdaj(链接文本),但似乎不支持此功能。


问题答案:

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

有关帮助实现equals和hashcode的库的信息,请参见下面的Gaurav Saini的评论。



 类似资料:
  • 问题内容: 我可能会尝试以困难的方式执行此操作,所以请让我知道是否有更好的解决方案。 我正在用Java开发一个简单的文字游戏,您可以通过GUI选择动作。我有几个班级正在尝试序列化一个是播放器,另一个是NPC。是否有一种简单的方法可以将一个以上的对象(播放器和NPC)序列化到同一文件中?我可以序列化一个对象并将其加载回游戏中。 我会以错误的方式处理吗?有没有更简单的方法来尝试保存游戏状态? 如果我有

  • 在其中声明列表后 并在类PlayListStuff中添加字段

  • 我该怎么做才能使这件事如我所愿?。谢谢 JSON对象示例列表 示例JSON对象: null 忽略不存在json字段的反序列化错误,但问题仍然存在。 示例:对象反序列化器

  • } 我有两个相同的对象,但是它们有不同的hashCode。为什么呢?我尝试覆盖Rational中的. equ方法r1.equals(r2)==true。但是它们仍然产生不同JavahashCode。

  • 如何将2列表ArrayList与list进行比较 ArrayList={a,b,c,d}和list lst={a,b,c,d,e} 结果:列表al={e} 我应该如何处理这个问题?由于对象不同,比较器不工作,即使设置或其他操作也不工作

  • 问题内容: 是否有可能创造 ; 我的意思是将来自不同类的对象添加到一个arraylist? 谢谢。 问题答案: 是的,有可能: 该列表将接受任何实现的对象。