Java 整数表示的布尔值列表的逻辑析取

Java 整数表示的布尔值列表的逻辑析取,java,arraylist,compare,Java,Arraylist,Compare,我有两个数组列表:a1={1,0,0,1,0,0,0}和a2={0,1,1,0,0,0}。我需要比较两个ArrayList的元素,这样我就可以得出a3={1,1,1,0,0} a3基于逻辑析取运算,其中,如果其至少一个操作数为真,则会生成一个真值 这里需要帮助…您可以编写一个简单的for循环,循环遍历数组和您的“或”两个值,以及您的“完成…” 最好在开始之前检查两个数组的长度是否相等…假设a1和a2的长度相同,并且它们只包含1或0的元素: public static ArrayList<I

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

a3基于逻辑析取运算,其中,如果其至少一个操作数为真,则会生成一个真值


这里需要帮助…

您可以编写一个简单的for循环,循环遍历数组和您的“或”两个值,以及您的“完成…”


最好在开始之前检查两个数组的长度是否相等…

假设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;
}
公共静态ArrayList LogicalDisjunction(ArrayList a1,ArrayList a2){
断言(a1.length==a2.length);
ArrayList a3=新的ArrayList();
对于(int i=0;i
可能有更好的解决方案,但以下几点应该适合您:

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));
        }
    }

为什么使用整数来存储布尔值?为什么不使用提供
或()
方法的位集?@JBNizet,因为家庭作业并不总是有意义的。如果你合并我和安舒的答案,您将知道如何…甚至有代码来做。为什么不呢?如果您试图将布尔值保存到整数对象中而不进行某种类型的转换,Java不会警告您吗?按位或按两个
int
s会给您一个
int
。int与整数对象不同。在按位“或”和赋值上是否有从整数到整数的自动类型转换?谢谢你的回复。。。如果我有ArrayList array1=new ArrayList();如何将其转换为列表??因为当我尝试转换列表a1=Arrays.asList(array1)时,它会给我一个错误“类型不匹配:无法从列表转换到列表”;
111100