在ArrayList中的n个项目之后添加新元素

时间:2018-07-21 19:57:07

标签: java arraylist

我正在寻找一种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”的每个第3个元素之后将元素从“ bList”添加到“ aList”,而不替换“ aList”中的项目。所以我想要的ArrayList就像:

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

3 个答案:

答案 0 :(得分:4)

经过字符串测试:

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

答案 1 :(得分:0)

我不相信这种方法存在。您可以使用其他方法,例如:

创建一个扩展ArrayList类的内部类,并重写add()方法以更改内部全局变量(这样就不必最终声明它),声明一个名为“ specialAdd”的方法,它返回一个布尔值 它将在底部显示以下代码行:return super.add(o); 并且该方法还应该增加您先前定义的全局变量,如果该变量等于3,则将所需的元素从bList添加到aList。

答案 2 :(得分:-2)

据我了解,您有一个公共类:BaseClass,还有两个扩展了BaseclassClassAClassB的类。 为此数组,只需创建一个Baseclass类型的数组:ArrayList<BaseClass>并编写一个静态方法,就像您说的那样循环(我不认为有内置方法,但不确定),然后添加ClassA然后ClassB ,或者如果您具有A类型的数组,则可以使用.addAll()方法添加它。

我似乎找不到不循环的方法。