由整数表示的布尔列表的逻辑分离

时间:2012-10-15 17:40:54

标签: java arraylist compare

我有两个arraylists:a1 = {1,0,0,1,0,0,}和a2 = {0,1,1,0,0,0}。我需要比较两个arraylists的元素,所以我可以得出a3 = {1,1,1,1,0,0}。

a3基于逻辑析取操作,其中如果其操作数中的至少一个为真,则产生值true。

需要帮助......

3 个答案:

答案 0 :(得分:2)

你可以编写一个简单的for循环,迭代两个数组,然后“或”两个值,并完成...

最好在开始之前将两个阵列的长度相等...

答案 1 :(得分: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

答案 2 :(得分: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;
}