我有两个数组列表:a1 = {1, 0, 0, 1, 0, 0,}
和 a2 = {0, 1, 1, 0, 0, 0}。我需要比较两个数组列表的元素,以便我可以得出 a3 = {1, 1, 1, 1, 0, 0}。
a3 基于逻辑析取操作,如果其至少一个操作数为 true,则它会产生 true 的值。
在这里需要帮助...
可能有更好的解决方案,但以下内容应该适合您:
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
您可以编写一个简单的 for 循环,遍历两个数组,并且您"OR"两个值,然后完成...
最好在开始之前将两个数组的长度相等......
假设 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;
}