如何根据第一个同步阵列清单中的所有Elemnts



这是我到目前为止写的代码。但是某种程度上,Arraylist的大小也在增加。

ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1,2,3,4));
ArrayList<Integer> b = new ArrayList<>(Arrays.asList(1,3,2,4));
ArrayList<Integer> c = new ArrayList<>(Arrays.asList(4,2,3,1));
for(int i = 0; i < a.size(); i++){
    if(!a.get(i).equals(b.get(i))){
        if(!b.get(i).equals(c.get(i))){
            b.add(a.get(i), b.get(i));
            c.add(a.get(i), c.get(i));
        }
    }
}

我希望数组列表'b'和'c'与'a'Arraylist中的元素顺序同步,以便在所有情况下输出

我必须承认,我不知道这是什么目的,但它给出了预期的结果。如果您需要其他/其他功能,请澄清您的问题。

public static void main(String[] args) {
    ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
    ArrayList<Integer> b = new ArrayList<>(Arrays.asList(1, 3, 2, 4));
    ArrayList<Integer> c = new ArrayList<>(Arrays.asList(4, 2, 3, 1));
    for (int i = 0; i < a.size(); i++) {
        if (!a.get(i).equals(b.get(i))) {
            b.set(i, a.get(i));
        }
        if (!a.get(i).equals(c.get(i))) {
            c.set(i, a.get(i));
        }
    }
    System.err.println(Arrays.toString(b.toArray()));
    System.err.println(Arrays.toString(c.toArray()));
}

输出:

[1, 2, 3, 4]
[1, 2, 3, 4]

确保您可以在一个步骤中比较两个列表,如果一个人不等,则可以将两个列表进行设置 - 但是,如果仅需要调整b并且C不了解C,则C也会更改(不会受到伤害):

public static void main(String[] args) {
    ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
    ArrayList<Integer> b = new ArrayList<>(Arrays.asList(1, 3, 2, 4));
    ArrayList<Integer> c = new ArrayList<>(Arrays.asList(4, 2, 3, 1));
    for (int i = 0; i < a.size(); i++) {
        if ((!a.get(i).equals(b.get(i))) || (!a.get(i).equals(c.get(i)))) {
            b.set(i, a.get(i));
            c.set(i, a.get(i));
        }
    }
    System.err.println(Arrays.toString(b.toArray()));
    System.err.println(Arrays.toString(c.toArray()));
}

最新更新