-7

a1 = {1, 0, 0, 1, 0, 0,} と a2 = {0, 1, 1, 0, 0, 0} の 2 つの配列リストがあります。a3 = {1, 1, 1, 1, 0, 0} を考え出すことができるように、両方の配列リストの要素を比較する必要があります。

a3 は論理和演算に基づいており、オペランドの少なくとも 1 つが true の場合に true の値を生成します。

ここで助けが必要です...

4

3 に答える 3

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 に答える
2

両方の配列を反復する単純な for ループを作成し、両方の値を「OR」すると、完了です...

開始する前に、両方の配列が同じ長さであることを確認することをお勧めします...

于 2012-10-15T17:43:54.807 に答える
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 に答える