Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ArrayList中的n项之后添加新元素_Java_Arraylist - Fatal编程技术网

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

Java 在ArrayList中的n项之后添加新元素,java,arraylist,Java,Arraylist,我正在寻找一个Java(Android)方法,在每n个项目之后添加一个新元素。示例如下:我有两种不同类型的项实现相同的基类,比如说A和B。我想要实现的是在每10个项之后,从一个数组(由B个元素组成)向另一个数组(由A个元素组成)添加项。我可以通过实现循环逻辑来实现它,但需要一些内置功能。谢谢你的帮助 详细信息: ArrayList<A> aList = new ArrayList<A>(Arrays.asList(a, a, a, a, a, a, a)); Array

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

详细信息:

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);
ArrayList-aList=新的ArrayList(Arrays.asList(a,a,a,a,a,a));
ArrayList bList=新的ArrayList(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));
ArrayList aList=新的ArrayList(Arrays.asList(a、a、a、b、a、a、a、b));

如果我理解的话,您有一个公共类:
基类
,还有两个扩展了
基类
类a
类B
。 要创建这样的数组,只需创建一个类型为Baseclass:
ArrayList
的数组,并编写一个静态方法,就像您所说的循环(我认为没有内置方法,但不确定),然后添加ClassA然后添加ClassB,或者如果您有一个类型的数组,则可以使用
.addAll()
方法添加它

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

用字符串测试:

    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);
    }
ArrayList aList=新的ArrayList(Arrays.asList(“a”、“a”、“a”、“a”、“a”、“a”));
ArrayList bList=新的ArrayList(Arrays.asList(“b”、“b”、“b”));
int步=3;
对于(int i=0;i
我认为不存在这样的方法。您可以使用不同的方法,如:

创建一个扩展ArrayList类的内部类,并重写
add()
方法来更改内部全局变量(以便不将其声明为final),声明一个名为“SpecialAddd”的方法或其他方法,并使其返回布尔值 它的底部将有一行代码:
returnsuper.add(o);

该方法还应增加您之前定义的全局变量,如果它等于3,则将所需元素从bList添加到aList。

您需要提供更多详细信息。例如,编写具有预期功能的伪代码。这是一个android问题吗?这是学校问题,还是您有其他实际目标l?还是这是XYproblen@JacekCz只是想找到更实用的解决方案。感谢您的努力。实际上,我可以通过循环来实现它,在
集合中寻找内置的东西,如
排序
“我可以通过实现循环逻辑来实现它,但要寻找一些内置的功能”@FARID为什么?你不能用排序来实现这一点,你如何编写比较器呢?我不是说使用
sort
。我只是引用了
sort
作为一个内置方法,所以我们不必手动排序任何
ArrayList
。我只是举了一个例子。所以,我只是在寻找一些内置方法来实现什么我在问题中问过。对这种方法的存在没有太高的期望,但我认为可能有类似的东西,实际上你的回答是对我问题的重复:))