java—在数组中的每2个元素之后添加数据

huwehgph  于 2021-07-09  发布在  Java
关注(0)|答案(4)|浏览(310)

我想在每个第二个元素后面的数组中添加对象/数据……为了更清楚地说明这一点,我将使用一个简单的示例
我有以下列表:

List<Object> list = new ArrayList<>();
list.add("messi");
list.add("ronaldo");
list.add("rooney");
list.add("pogba");
list.add("hazard");

print(list);
//output : [messi,  ronaldo, rooney, pogba,hazard]

我想要的是:

//[messi,  ronaldo, DATA, rooney, pogba, DATA, hazard]

我怎样才能做到这一点。
在每个第二个元素之后添加数组中的数据。

x33g5p2x

x33g5p2x1#

class sample {
    public static void main(String[] args) {
        List<Object> list = new ArrayList<>();
        sample.addList("messi", list);
        sample.addList("ronaldo", list);
        sample.addList("rooney", list);
        sample.addList("pogba", list);
        sample.addList("hazard", list);
        System.out.println(list);
    }

    private static void addList(String value, List<Object> objects) {
          if (!objects.isEmpty() && (objects.size() % 3 == 2)) {
            objects.add("Data");
        }
        objects.add(value);

    }
}

您可以如上所述创建一个实用方法。每次添加元素前,检查 list.size() % 3 == 2 然后添加额外的元素。
这对你有帮助。

ds97pgxw

ds97pgxw2#

因此,您可以创建一个新的列表,用新对象存储旧数据:

List<Object> list = new ArrayList<>();
List<Object> newlist = new ArrayList<>();

list.add("messi");
list.add("ronaldo");
list.add("rooney");
list.add("pogba");
list.add("hazard");

for(int i = 0; i < list.size(); i++) {
   if(i%2==0) {
       // Add DATA after 2 items
       newlist.add(data);
    }
    newlist.add(list.get(i));
 }

我在用手机写东西,请给我格式化一下。

lo8azlld

lo8azlld3#

查看所需的输出和插入数据值的索引:

[messi, ronaldo, DATA, rooney, pogba, DATA, hazard]
   0        1      2      3      4      5      6

数据值在索引2,5,8,11。。。
这意味着这是一个简单的 for 循环调用 add(int index, E element) :

List<Object> list = new ArrayList<>();
list.add("messi");
list.add("ronaldo");
list.add("rooney");
list.add("pogba");
list.add("hazard");
System.out.println(list);

for (int i = 2; i < list.size(); i += 3) {
    list.add(i, "DATA");
}
System.out.println(list);

输出

[messi, ronaldo, rooney, pogba, hazard]
[messi, ronaldo, DATA, rooney, pogba, DATA, hazard]
oewdyzsn

oewdyzsn4#

通过维护一个计数器。

public class Main {
    public static void main(String[] args) {

        List<Object> list = new ArrayList<>();
        list.add("messi");
        list.add("ronaldo");
        list.add("rooney");
        list.add("pogba");
        list.add("hazard");

        int counter = 0 ;
        List<Object> data = new ArrayList<>();
        for(Object obj : list){
            data.add(obj);
            counter = counter + 1;
            if(counter%2 == 0)
                data.add("DATA");
        } 

        for(Object obj : data)
            System.out.println(obj);
    }
}

相关问题