如何从2个数组中获取每个值的差异

时间:2019-03-09 14:35:02

标签: java arraylist

如何从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

2 个答案:

答案 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是数组的大小。

如果数组的大小不同,显然您需要检查一些索引范围。我不确定您是否要考虑多余的元素,然后将它们添加到结果中,还是要丢弃它们,但是对上述算法进行简单的修改就可以达到目的。