比较两个ArrayLists - 一个作为另一个的子集

时间:2013-04-03 19:53:42

标签: java arraylist compare subset

我知道我们可以在比较两个containsAll时使用ArrayLists方法来检查一个是否是另一个的子集。但这就是我想要的。考虑一下

ArrayList super = 1,2,3,4,5,6,7,8,9,10

ArrayList sub1 = 1,2,3,4

和另一个

ArrayList sub2 = 2,4,6,8

现在,如果我做了

super.containsAll(sub1),它会评估为true,因为sub1中包含super

如果我super.containsAll(sub2),它也会评估为true,因为数字2,4,6和8包含在super中。

我想知道是否有办法检查两个ArrayLists,以便super.containsAll(sub2)评估为false,因为sub2中的数字不会出现在super中在{{1}}中订购。

2 个答案:

答案 0 :(得分:7)

我相信你可以使用Collections.indexOfSublist来做到这一点。更多信息:http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html

答案 1 :(得分:0)

我猜你必须自己实施。你应该遍历super,如果是super(i).equals(sub2(0)),请检查下一个项目是否与sub2相同。