在 ArrayList (Java) 中搜索键的总和

Searching the sum of a Key inside an ArrayList (Java)

我需要搜索在我的 ArrayList 中是否存在与传递给该方法的给定数字 X 相对应的两个数字的总和。

我在两个不同的文件中有这些数字 - 一个包含数字,另一个包含密钥。

我做的是:

-用这些数字填充 2 个不同的 ArrayList

-用我必须搜索总和的数字对它排序

然后我不知道如何检查给定的键是否是数组列表中包含的两个数字的总和。有什么建议吗?我post我的部分代码,只是最后一次尝试。

在这里,我对 ArrayList 进行排序并调用方法 elementIsContained 并传递 "sums.get(i)",这是我必须在另一个 ArrayList 中搜索的数字。

 case "-a":
            buffer.mergeSort(arrList, 0, arrList.size()-1);
            for(int i=0; i < sums.size(); i++){
            elementIsContained(arrList, 0, arrList.size()-1, sums.get(i) );
            }
            break;

然后我试图以双分的方式搜索总和,但我不知道如何对所有组合求和以找到键

我想避免搜索大于关键字的项目并搜索其他项目,但是..我不知道,我没有主意!

让我们看看操作流程(一种可能的解决方案)

  1. 初始化一个HashSet SET,将包含Numbers的列表中的所有数字插入到SET中。

  2. 开始循环并迭代包含键的列表。因此,对于每次迭代,您都有一个 KEY。

  3. if(Set.contains(Sum-KEY) 那么你有 2 个数字的组合,使得总和等于 KEY。