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

Provide a generic static method (void) in Java that reverses the elements of a g

ID: 3763890 • Letter: P

Question

Provide a generic static method (void) in Java that reverses the elements of a generic array list and a generic static method that returns the reverse of a generic array list, without modifying the original list.

import java.util.ArrayList;

/**
This program demonstrates reversing a generic ArrayList.
*/
public class ArrayListReverser
{
public static void main(String[] args)
{
ArrayList<String> a = new ArrayList<>();
a.add("apple");
a.add("orange");
a.add("pear");
a.add("banana");
reverse(a);
for (String o : a)
{
System.out.print(o + " ");
}
System.out.println();
System.out.println("Expected: banana pear orange apple");
  
ArrayList<Integer> aa = new ArrayList<>();
aa.add(23);
aa.add(45);
aa.add(80);
aa.add(92);
reverse(aa);
for (Integer o : aa)
{
System.out.print(o + " ");
}
System.out.println();
System.out.println("Expected: 92 80 45 23");
  
ArrayList<String> b = reverseCopy(a);
for (String o : b)
{
System.out.print(o + " ");
}
System.out.println();
System.out.println("Expected: banana pear orange apple");

ArrayList<Integer> bb = reverseCopy(aa);
for (Integer o : bb)
{
System.out.print(o + " ");
}
System.out.println();
System.out.println("Expected: 92 80 45 23");
  
}
    //add methods here
}

Explanation / Answer

import java.util.ArrayList;

import java.util.Collections;

/**

* This program demonstrates reversing a generic ArrayList.

*/

public class ArrayListReverser {

   public static void main(String[] args) {

       ArrayList<String> a = new ArrayList<>();

       a.add("apple");

       a.add("orange");

       a.add("pear");

       a.add("banana");

       reverse(a);

       for (String o : a) {

           System.out.print(o + " ");

       }

       System.out.println();

       System.out.println("Expected: banana pear orange apple");

       ArrayList<Integer> aa = new ArrayList<>();

       aa.add(23);

       aa.add(45);

       aa.add(80);

       aa.add(92);

       reverse(aa);

       for (Integer o : aa) {

           System.out.print(o + " ");

       }

       System.out.println();

       System.out.println("Expected: 92 80 45 23");

       ArrayList<String> b = reverseCopy(a);

       for (String o : b) {

           System.out.print(o + " ");

       }

       System.out.println();

       System.out.println("Expected: apple orange pear banana");

       ArrayList<Integer> bb = reverseCopy(aa);

       for (Integer o : bb) {

           System.out.print(o + " ");

       }

       System.out.println();

       System.out.println("Expected: 23 45 80 92");

   }

// add methods here

   private static <T> ArrayList<T> reverseCopy(ArrayList<T> aa) {

       ArrayList<T> rev = new ArrayList<>();

       for (int i = aa.size()-1; i>=0; i--) {

           rev.add(aa.get(i));

       }

       return rev;

   }

   private static <T> void reverse(ArrayList<T> aa) {

       Collections.reverse(aa);

   }

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote