Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

write a java method [public static ArrayList merge (ArrayList a, ArrayList b)] t

ID: 3672800 • Letter: W

Question

write a java method [public static ArrayList merge (ArrayList a, ArrayList b)] that merges two array lists, alternating elements from both array lists. if one array list is shorter than the other, then alternate as long as you can and then append the remaining elements from the longer array list. For example, if a is 1 4 9 16 and b is 9 7 4 9 11, then merge returns the array lists 1 9 4 7 9 4 16 9 11

PLEASE USE THE BASE CODE BELOW PROVIDED

import java.util.ArrayList;

public class myARRAYLIST
{
public static void main(String[] args)
{
ArrayList <Integer> a = new ArrayList<Integer>();
ArrayList <Integer> b = new ArrayList<Integer>();

// Initialize array list a to some values
for (int i = 0; i < 4; i++)
{
a.add((i + 1) * (i + 1));
}
// Initialize array list b to some values
b.add(9);
b.add(7);
b.add(4);
b.add(9);
b.add(11);
b.add(21);
System.out.println("ArrayList b is "+b);
System.out.println("ArrayList a is " +a);
System.out.println("merged is" +merge (a,b));

}
public static ArrayList<Integer> merge (ArrayList<Integer>x, ArrayList<Integer>y)
{
ArrayList<Integer> temp = new ArrayList<Integer> (x.size() + y.size () );
return temp;
}
}


Explanation / Answer

/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.ArrayList;
class myARRAYLIST
{
public static void main(String[] args)
{
      ArrayList <Integer> a = new ArrayList<Integer>();
      ArrayList <Integer> b = new ArrayList<Integer>();
         
      // Initialize array list a to some values
      for (int i = 0; i < 4; i++)
      {
        a.add((i + 1) * (i + 1));
      }
      // Initialize array list b to some values  
      b.add(9);
      b.add(7);
      b.add(4);
      b.add(9);
      b.add(11);
      b.add(21);
      System.out.println("ArrayList b is "+b);
      System.out.println("ArrayList a is " +a);
      System.out.println("merged is" +merge (a,b));
                       
      }
   public static ArrayList<Integer> merge (ArrayList<Integer>x, ArrayList<Integer>y)
                                             {
      ArrayList<Integer> temp = new ArrayList<Integer> (x.size() + y.size () );
  
       int small;
       if (x.size() < y.size())
           small = x.size();
       else
           small = y.size();
       // merges two array lists, alternating elements from both array lists.
       for (int i = 0; i < small; i++){
            temp.add(x.get(i));
            temp.add(y.get(i));
       }
       // append the remaining elements from the longer array list.
       if (x.size() < y.size())
            for (int i = x.size(); i < y.size(); i++)
                temp.add(y.get(i));
       else if(y.size() < x.size())
           for (int i = y.size(); i < x.size(); i++)
                temp.add(x.get(i));
      return temp;
  
   }
  
}

Output: