我的标题很糟糕,但我不知道它应该是什么。我的问题很简单,我有四个数组列表,我想从其中两个中获取相似的单词并放入另一个数组列表。无论如何,我的数组列表如下;
arrList1 = {car, apple, many, car, tyty, man, superman};
arrList2 = {stack, vs, etc, vs, car, tyty, stack, tyty, many, car, apple};
我尝试过这个;
for (int i = 0; i < arrList1.size(); i++) {
for (int j = 0; j < arrList2.size(); j++) {
if (arrList1.get(i).equals(arrList2.get(j))) {
arrList3.add(arrList1.get(i);
arrList4.add(arrList2.get(j);
}
}
但是正如您所看到的,arrList1 和 arrList2 有重复项,因此 arrList4 将具有比正常情况更多的相同元素。另外,我必须计算 arrList1 和 arrList2 中的元素,所以我不应该使用集合集合。我该怎么办?
最佳答案
尝试
ArrayList<String> temp = new ArrayList<String>();
boolean found = false;
for (int i = 0; i < arrList1.size(); i++) {
found = false;
for (int j = 0; j < arrList2.size(); j++) {
if (arrList1.get(i).equals(arrList2.get(j))) {
found = true;
if (!temp.contains(arrList2.get(j)) {
arrList4.add(arrList2.get(j));
}
}
}
if (found) {
arrList3.add(arrList1.get(i));
temp.add(arrList1.get(i));
}
}
这将检查新的 ArrayList
是否尚未包含该项目。
关于java - Java ArrayList 上的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25455837/