-7

我有两个数组列表:a1 = {1, 0, 0, 1, 0, 0,} 和 a2 = {0, 1, 1, 0, 0, 0}。我需要比较两个数组列表的元素,以便得出 a3 = {1, 1, 1, 1, 0, 0}。

a3 基于逻辑析取运算,如果至少有一个操作数为真,则它产生一个真值。

在这里需要帮助...

4

3 回答 3

2

您可以编写一个简单的 for 循环,遍历两个数组,然后“或”两个值,然后您就完成了...

最好在开始之前检查两个数组的长度相同...

于 2012-10-15T17:43:54.807 回答
2

可能会有更好的解决方案,但以下应该对您有用:

public static void main(String[] args) {
        Integer[] a = new Integer[] { 1, 0, 0, 1, 0, 0 };
        List<Integer> a1 = Arrays.asList(a);
        Integer[] b = new Integer[] { 0, 1, 1, 0, 0, 0 };
        List<Integer> a2 = Arrays.asList(b);
        List<Integer> a3 = new ArrayList();
        for (int i = 0; i < a1.size(); i++) {
            a3.add(a1.get(i) | a2.get(i));
            System.out.print(a3.get(i));
        }
    }

输出:

111100
于 2012-10-15T17:51:13.647 回答
0

假设 a1 和 a2 具有相同的长度并且它们只包含 1 或 0 的元素:

public static ArrayList<Integer> LogicalDisjunction(ArrayList<Integer> a1, ArrayList<Integer> a2) {
    Assert(a1.length == a2.length);

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

    for (int i = 0; i < a1.length; i++) {
        if ( ( a1.get(i) == 1 ) || ( a2.get(i) == 1) ) {
            a3.add(1);
        } else {
            a3.add(0);
        }
    }
    return a3;
}
于 2012-10-15T17:46:15.303 回答