【发布时间】:2011-08-18 12:30:36
【问题描述】:
我有两个列表 A 和 B。我想找出 A 中与 listB 的元素匹配的元素的索引。像这样的:
ArrayList listA = new ArrayList();
listA.add(1);listA.add(2);listA.add(3);listA.add(4);
ArrayList listB = new ArrayList();
listB.add(2);listB.add(4);
ArrayList listC = new ArrayList();
for(int i=0; i<listB.size();i++) {
int element = listB.get(i);
for(int j=0; j<listA.size(); j++) {
if(listA.get(j) == element) listC.add(j);
}
}
我想这是一种丑陋的做法。查找与 B 中的所有元素匹配的 A 的所有索引的最佳方法是什么?我相信 collections api 中存在一个名为 containsAll 的方法 - 不要认为它返回匹配的索引。
【问题讨论】:
-
任一列表是否可以包含重复值?
-
Set 不起作用是有原因的吗? download.oracle.com/javase/1.4.2/docs/api/java/util/Set.html
-
我猜他们不能..包含重复值。
-
我需要元素的索引 - 使用 Set 和使用 List 一样吗?
标签: java collections arraylist