In a Java program complete this skeleton code and test with a main /** * Represent a Jagged Array of characters in n bins */ import java.util.LinkedList; public class JggdArry { // Unpacked representation private LinkList[] unpckdVals; // Packed representation private int[] offsts; private T[] pckdVals; /** * Create a unpacked Jagged Array with the given number of bins * * @param bins The number of bins to create */ public JggdArry(int bins) { } /** * Return the unpacked array of linked lists. * Don't change this, the tests use it. */ public final LinkList[] getUnpckdVals() { return unpckdVals; } /** * Return the packed values. * Don't change this, the tests use it. */ public final T[] getPckdValues() { return pckdVals; } /** * Return the offsets array. * Don't change this, the tests use it. */ public final int[] getOffsts() { return offsts; } /** * Return the number of elements in the jagged array */ public int size() { return 0; } /** * Return the number of bins */ public int numberOfBins() { return 0; } /** * Return the number of slots in the given bin */ public int numberOfSlots(int bin) { return 0; } /** * Return the element at the given bin and slot number */ public T getElement(int bin, int slot) throws IndexOutOfBoundsException { return null; } /** * Add an element into the bin at the end */ public boolean addElement(int bin, T element) throws IndexOutOfBoundsException { return false; } /** * Remove an element at the given bin and slot number */ public boolean removeElement(int bin, int slot) throws IndexOutOfBoundsException { return false; } /** * Unpack the representation from packed. * * @return True if successful, or false if already unpacked */ public boolean unpck() { return false; } /** * Pack the values * * @return True if successful, or false if already packed */ public boolean pck() { return false; } /** * A helpful method to print out a jagged array. Useful for debugging. */ public void print() { System.out.println("JggdArry(Number of Bins=" + numberOfBins()); for (int i = 0; i < numberOfBins(); i++) { System.out.print("\tBin " + i + "(Slots=" + numberOfSlots(i) + ": "); for (int j = 0; j < numberOfSlots(i); j++) { System.out.print(getElement(i, j)); if (j < numberOfSlots(i) - 1) { System.out.print(", "); } } System.out.println(")"); } System.out.println(")"); } }