【发布时间】:2014-12-24 19:07:21
【问题描述】:
我有两个列表如下
List<MyObject1> list1
List<Long> list2
list2 基本上是 MyObject1 的 Id 列表,它是对象中的一个属性
Public Class MyObject1 implements Serializable{
private Long myObjId;
.....
.....
//other elements go here
public Long getMyObjId() {
return myObjId;
}
public void setMyObjId(Long myObjId) {
this.myObjId = myObjId;
}
我想比较两个列表来检查list1中的所有对象是否都包含在list2中
一种方法是遍历 list1,从中创建一个新的 Id 列表,然后对其使用 containsAll 方法。
有没有更简单的方法可以达到同样的效果?
【问题讨论】:
-
这是 Java 8 还是 Java 7 及更低版本?
-
@markspace 因为 lambdas
-
可能需要更多详细信息。当 list2 包含 (1,2,3) 并且 list1 包含 ID 为 (1,2,2,3) 的对象时,检查是否应该返回“true”?无论如何,创建 ID 列表是可行且简单的,但根据确切的前提条件和要求,可能会有更优雅的解决方案。
-
我使用的是 java 7,是的,如果 list1 包含 (1,2,3) 并且 list2 是 (1,2,2,3),它应该是正确的。基本上 list2 包含 list1 中的所有内容以及其他任何内容。
-
我的问题是相反的(但可能没有重复的 ID,正如名称“ID”所暗示的......)
标签: java collections