gpt4 book ai didi

java - 将 ArrayList 的每个元素添加到另一个 ArrayList 的每个元素

转载 作者:行者123 更新时间:2023-12-01 18:49:59 24 4
gpt4 key购买 nike

我有一个 ArrayList,其中有 N 个项目。我想迭代 ArrayList,并将 ArrayList 中的每个项目添加到另一个 ArrayList 中的等效项目。我已经尝试过这个,但它不起作用:

ArrayList<Integer> arrList1 = new ArrayList<Integer>();

for(String key: myMap.keyValues() {
ArrayList<Integer> dynArrList = getArrayListFromSomewhereElse();

for(Integer i : dynArrList) {
arrList1.set(i, arrList1.get(i) + dynArrList.get(i)); // sum each item
}
}

我遇到索引越界异常。我尝试初始化 arrList1,但没有什么区别。我还尝试为其设置最小尺寸。

最佳答案

您尚未提供两个要求和的整数列表。您有dynArrList作为加数,你有 arrList1为了结果。但是你没有第二个加数,这应该告诉你你还没有真正理解你的问题。要么您真正的任务不是您想象的那样,要么您没有正确确定从哪里获取数据。

所以,假设你有两个 List<Integer> s。尽可能对接口(interface)进行编程。你会如何逐项求和?编写一个 sum 方法,并了解如果两个列表大小不同会发生什么。

public List<Integer> sum(List<Integer> left, List<Integer> right) {
if (left.size() != right.size()) {
// A runtime exception you write saying that you can't add two
// arrays of different sizes.
throw new VectorShapeException(left.size(), right.size());
}
List<Integer> vectorSum = new ArrayList<>();
for (int i = 0; i < left.size(); ++i) {
vectorSum.add(left.get(i) + right.get(i));
}
return vectorSum;
}

确定您要添加的内容,然后使用它。

现在,假设您有计算两个整数数组列表的点积的作业。您可能需要两件事——一种对一个列表的元素求和的方法,以及一种获取乘积 vector 的方法。这可能会造成浪费,因为您可能不需要中间列表,并且会浪费空间。第一个任务很简单:

public int sum(List<Integer> list) {
int total = 0;
for(Integer element: list) {
total += element;
}
return total;
}

第二个很简单;只需复制并重命名即可:

public List<Integer> product(List<Integer> left, List<Integer> right) {
if (left.size() != right.size()) {
// A runtime exception you write saying that you can't multiply two
// arrays of different sizes.
throw new VectorShapeException(left.size(), right.size());
}
List<Integer> vectorProd = new ArrayList<>();
for (int i = 0; i < left.size(); ++i) {
vectorProd.add(left.get(i) * right.get(i));
}
return vectorProd;
}

public int dotProduct(List<Integer> left, List<Integer> right) {
return sum(product(left, right));
}

但是这里有一个乏味的问题。剪切、粘贴和修改表明我并没有真正在那里思考。 2 参数求和方法与乘积方法之间唯一真正的区别是运算符和名称。这导致了函数式编程,目前这可能太多了。

关于java - 将 ArrayList 的每个元素添加到另一个 ArrayList 的每个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16198874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com