在数组的每第二个元素之后添加数据。

huangapple go评论104阅读模式
英文:

add data after every 2nd element in an array

问题

我想在每两个元素之后向数组中添加对象/数据...为了更清楚起见,我将使用一个简单的示例

我有一个数组列表:

  1. List<Object> list = new ArrayList<>();
  2. list.add("messi");
  3. list.add("ronaldo");
  4. list.add("rooney");
  5. list.add("pogba");
  6. list.add("hazard");
  7. print(list);
  8. //输出:[messi,ronaldo,rooney,pogba,hazard]

我想要的是:

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

我如何实现这个目标。

在每两个元素之后添加数据到数组中。

英文:

I want to add object/data in an array after every 2nd element ....just for making more clear I am going to use a simple example

I have arrayList of :

  1. List&lt;Object&gt; list = new ArrayList&lt;&gt;();
  2. list.add(&quot;messi&quot;);
  3. list.add(&quot;ronaldo&quot;);
  4. list.add(&quot;rooney&quot;);
  5. list.add(&quot;pogba&quot;);
  6. list.add(&quot;hazard&quot;);
  7. print(list);
  8. //output : [messi, ronaldo, rooney, pogba,hazard]

What I want is:

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

how I can achieve this.

Adding data in an array after every 2nd element.

答案1

得分: 3

  1. 通过维护一个计数器。
  2. public class Main {
  3. public static void main(String[] args) {
  4. List<Object> list = new ArrayList<>();
  5. list.add("messi");
  6. list.add("ronaldo");
  7. list.add("rooney");
  8. list.add("pogba");
  9. list.add("hazard");
  10. int counter = 0;
  11. List<Object> data = new ArrayList<>();
  12. for (Object obj : list) {
  13. data.add(obj);
  14. counter = counter + 1;
  15. if (counter % 2 == 0)
  16. data.add("DATA");
  17. }
  18. for (Object obj : data)
  19. System.out.println(obj);
  20. }
  21. }
英文:

By maintaining a counter.

  1. public class Main {
  2. public static void main(String[] args) {
  3. List&lt;Object&gt; list = new ArrayList&lt;&gt;();
  4. list.add(&quot;messi&quot;);
  5. list.add(&quot;ronaldo&quot;);
  6. list.add(&quot;rooney&quot;);
  7. list.add(&quot;pogba&quot;);
  8. list.add(&quot;hazard&quot;);
  9. int counter = 0 ;
  10. List&lt;Object&gt; data = new ArrayList&lt;&gt;();
  11. for(Object obj : list){
  12. data.add(obj);
  13. counter = counter + 1;
  14. if(counter%2 == 0)
  15. data.add(&quot;DATA&quot;);
  16. }
  17. for(Object obj : data)
  18. System.out.println(obj);
  19. }
  20. }

答案2

得分: 2

所以,你可以做的是创建一个新的列表来存储带有新对象的旧数据:

  1. List<Object> list = new ArrayList<>();
  2. List<Object> newlist = new ArrayList<>();
  3. list.add("messi");
  4. list.add("ronaldo");
  5. list.add("rooney");
  6. list.add("pogba");
  7. list.add("hazard");
  8. for (int i = 0; i < list.size(); i++) {
  9. if (i % 2 == 0) {
  10. // 在每两个项目后添加DATA
  11. newlist.add(data);
  12. }
  13. newlist.add(list.get(i));
  14. }

请有人进行格式化,因为我是从手机上编写的。

英文:

So, you can do is create a new list to store the old data with new object:

  1. List&lt;Object&gt; list = new ArrayList&lt;&gt;();
  2. List&lt;Object&gt; newlist = new ArrayList&lt;&gt;();
  3. list.add(&quot;messi&quot;);
  4. list.add(&quot;ronaldo&quot;);
  5. list.add(&quot;rooney&quot;);
  6. list.add(&quot;pogba&quot;);
  7. list.add(&quot;hazard&quot;);
  8. for(int i = 0; i &lt; list.size(); i++) {
  9. if(i%2==0) {
  10. // Add DATA after 2 items
  11. newlist.add(data);
  12. }
  13. newlist.add(list.get(i));
  14. }

Please someone format since I'm writing from my phone.

答案3

得分: 0

  1. class sample {
  2. public static void main(String[] args) {
  3. List<Object> list = new ArrayList<>();
  4. sample.addList("messi", list);
  5. sample.addList("ronaldo", list);
  6. sample.addList("rooney", list);
  7. sample.addList("pogba", list);
  8. sample.addList("hazard", list);
  9. System.out.println(list);
  10. }
  11. private static void addList(String value, List<Object> objects) {
  12. if (!objects.isEmpty() && (objects.size() % 3 == 2)) {
  13. objects.add("Data");
  14. }
  15. objects.add(value);
  16. }
  17. }

可以创建一个如上所述的实用方法。
每次在添加元素之前,检查一下是否 list.size() % 3 == 2,如果是,则添加额外的元素。

这会对你有所帮助。

英文:
  1. class sample {
  2. public static void main(String[] args) {
  3. List&lt;Object&gt; list = new ArrayList&lt;&gt;();
  4. sample.addList(&quot;messi&quot;, list);
  5. sample.addList(&quot;ronaldo&quot;, list);
  6. sample.addList(&quot;rooney&quot;, list);
  7. sample.addList(&quot;pogba&quot;, list);
  8. sample.addList(&quot;hazard&quot;, list);
  9. System.out.println(list);
  10. }
  11. private static void addList(String value, List&lt;Object&gt; objects) {
  12. if (!objects.isEmpty() &amp;&amp; (objects.size() % 3 == 2)) {
  13. objects.add(&quot;Data&quot;);
  14. }
  15. objects.add(value);
  16. }
  17. }

You can create one utility method as mentioned above.
For every time before adding element check that if list.size() % 3 == 2 then add extra element.

This will help you.

答案4

得分: 0

看一下所需的输出和插入的DATA值的索引:

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

DATA值放在索引2、5、8、11等处。

这意味着这是一个简单的for循环,调用add(int index, E element)

  1. List<Object> list = new ArrayList<>();
  2. list.add("messi");
  3. list.add("ronaldo");
  4. list.add("rooney");
  5. list.add("pogba");
  6. list.add("hazard");
  7. System.out.println(list);
  8. for (int i = 2; i < list.size(); i += 3) {
  9. list.add(i, "DATA");
  10. }
  11. System.out.println(list);

输出

  1. [messi, ronaldo, rooney, pogba, hazard]
  2. [messi, ronaldo, DATA, rooney, pogba, DATA, hazard]
英文:

Look at the desired output and the indexes of the inserted DATA values:

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

The DATA values go in index 2, 5, 8, 11, ...

Which means it's a simple for loop calling add(int index, E element):

  1. List&lt;Object&gt; list = new ArrayList&lt;&gt;();
  2. list.add(&quot;messi&quot;);
  3. list.add(&quot;ronaldo&quot;);
  4. list.add(&quot;rooney&quot;);
  5. list.add(&quot;pogba&quot;);
  6. list.add(&quot;hazard&quot;);
  7. System.out.println(list);
  8. for (int i = 2; i &lt; list.size(); i += 3) {
  9. list.add(i, &quot;DATA&quot;);
  10. }
  11. System.out.println(list);

Output

  1. [messi, ronaldo, rooney, pogba, hazard]
  2. [messi, ronaldo, DATA, rooney, pogba, DATA, hazard]

huangapple
  • 本文由 发表于 2020年8月20日 22:00:38
  • 转载请务必保留本文链接:https://go.coder-hub.com/63506771.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定