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