java - ArrayList of Integers 的 ArrayList 不应接受重复项

标签 java arraylist

目标是在我的整数数组列表“listResults”的数组列表中没有重复项。 在这里,我迭代元素列表“listOfElements”,如果此列表中两个元素的总和等于目标,则我将两个元素的索引存储在 ArrayList“对”中。然后我将该 ArrayList 添加到 ArrayList“listResults”列表中并继续迭代。 最后,我可能会得到包含一个或多个 arrayList 的 listResults。但是我不希望它包含重复项,例如 [2,3] 和 [3,2] 或 [4,0] 和 [0,4]

int target = 60;

ArrayList<ArrayList<Integer>> listResults = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> listOfElements = new ArrayList<Integer>();

listOfElements.add(1);
listOfElements.add(10);
listOfElements.add(25);
listOfElements.add(35);
listOfElements.add(60);

for (int i = 0; i < listOfElements.size(); i++) {
    for (int j = 0; j < listOfElements.size(); j++) {
        if (listOfElements.get(i) + listOfElements.get(j) == target) {
            ArrayList<Integer> pair = new ArrayList<Integer>();
            pair.add(i);
            pair.add(j);
            listResults.add(pair);
        }
    }
}

System.out.println(listResults);

根据当前代码,输出为:[ [2,3] , [3,2] ] 但这是 Not Acceptable ,因为 [2,3] 和 [3,2] 是重复的。只应允许 [2,3],因为它是第一个添加到 ArrayList 中的。

最佳答案

您不应该检查已经访问过的元素。在你的内部 for 循环中,

改变

int j = 0;

int j = i + 1;

关于java - ArrayList of Integers 的 ArrayList 不应接受重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57085533/

相关文章:

java - 将 ArrayList 读入 ObservableList

java - 以编程方式将多个字符插入 Bing 搜索引擎并对每个字符执行搜索

java - gwt getKey 方法是否存在?

java - ArrayList 并返回 null

java - 安卓 : Update data-set where data-set is ArrayList of HashMaps

java - 如何在 Java 中获取有效的子列表?

javascript - 从数组列表中调用函数

java - "Serialization"的概念

java - 如何修复在 tablayout 之间切换时谷歌登录选项功能重复并崩溃的问题

java - 使用 Spring :message to define form tag attribute in Spring web application