如何从2个阵列中获得差异
输入:
CREATE TABLE some_name (
fv int,
sv int,
tv int)
-- more text afterwards
我想做的是逐点减法
List<Integer> bookingList = (3,4,5,6,5,5);
List<Integer> bookedList = (1,2,3,2,3,4);
结果应为具有以下内容的新bookingList.get(i) - bookedList.get(j)
//i is the position
//j is the position
:
List
答案 0 :(得分:1)
您在这里:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
caluclateFinalList();
}
private static void caluclateFinalList() {
List<Integer> bookingList = new ArrayList<>(Arrays.asList(3, 4, 5, 6, 5, 5));
List<Integer> bookedList = new ArrayList<>(Arrays.asList(1, 2, 3, 2, 3, 4));
// Output list
List<Integer> finalList = new ArrayList<>(bookingList.size());
// Loop
for (int position = 0; position < bookedList.size(); position++) {
// Calculate result
int result = bookingList.get(position) - bookedList.get(position);
// Add result to final list
finalList.add(result);
}
// Print final list to the console
System.out.println(finalList);
}
}
答案 1 :(得分:1)
如果保证列表大小相同,则只需执行for
循环即可。
List<Integer> results = new ArrayList(bookingList.size());
for(int i= 0; i < bookingList.size(); i++) {
results.add(bookingList.get(i) - bookedList.get(i));
}
return results;
这将为您提供结果内部和O(n)
内部的差异,其中n
是数组的大小。
如果数组的大小不同,显然您需要检查一些索引范围。我不确定您是否要考虑多余的元素,然后将它们添加到结果中,还是要丢弃它们,但是对上述算法进行简单的修改就可以达到目的。