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:
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.