首页 > 解决方案 > 在 ArrayList 中的 n 个项目之后添加新元素

问题描述

我正在寻找一种 Java (Android) 方法来在每 n 个项目之后添加一个新元素。示例如下:我有两种不同类型的项目实现相同的基类,比如说 A 和 B。我想要实现的是将项目从一个数组(B 元素)添加到另一个数组(A 元素)在每个之后,比方说,10 个项目。我可以通过实现循环逻辑来实现它,但要寻找一些内置功能。感谢您的帮助。

细节:

ArrayList<A> aList = new ArrayList<A>(Arrays.asList(a, a, a, a, a, a, a));

ArrayList<B> bList = new ArrayList<B>(Arrays.asList(b, b, b);

我想要实现的是在“aList”的每个第三个元素之后将元素从“bList”添加到“aList”,而不替换“aList”中的项目。所以我想要的 ArrayList 就像:

ArrayList<A> aList = new ArrayList<A>(Arrays.asList(a, a, a, b, a, a, a, b, a, b));

标签: javaarraylist

解决方案


用字符串测试:

    ArrayList<String> aList = new ArrayList<String>(Arrays.asList("a", "a", "a", "a", "a", "a", "a"));

    ArrayList<String> bList = new ArrayList<String>(Arrays.asList("b", "b", "b"));

    int step = 3;

    for (int i = 0; i < bList.size(); i++) {
        int index = (step + 1) * (i + 1) - 1;

        if (index < aList.size()) {
            aList.add(index, bList.get(i));
        } else {
            aList.add(bList.get(i));
        }
    }

    for (String x : aList) {
        System.out.print(x);
    }

推荐阅读