Help I keep getting the same error when running a code. Below is the code and the instructions about the code. import java.util.Arrays; public class Album implements Comparable { private final int id; private final String[] artists; private final int numSongs; public Album(int id, String title, String[] artists, int numSongs) { this.id = id; this.artists = new String[]{Arrays.toString(artists)}; this.numSongs = numSongs; } public int getId() { return id; } @Override public int compareTo(Album other) { return Integer.compare(this.numSongs, other.numSongs); } @Override public String toString() { StringBuilder artistNames = new StringBuilder(); for (String artist : artists) { artistNames.append(artist).append(", "); } artistNames.delete(artistNames.length() - 2, artistNames.length()); return "ID: " + id + " -- " + numSongs + " songs -- [" + artistNames + "]"; } } import java.util.Random; public class DoublyLinkedList { private static class Node { T data; Node prev; Node next; Node(T data) { this.data = data; } } private Node head; private Node tail; private int size; public DoublyLinkedList() { head = null; tail = null; size = 0; } public Node append(T data) { Node newNode = new Node<>(data); if (head == null) { head = newNode; } else { tail.next = newNode; newNode.prev = tail; } tail = newNode; size++; return newNode; } public Node insert(int location, T data) { if (location < 0 || location > size) { throw new IllegalArgumentException("Invalid location"); } Node newNode = new Node<>(data); if (location == 0) { newNode.next = head; if (head != null) { head.prev = newNode; } head = newNode; if (tail == null) { tail = newNode; } } else if (location == size) { tail.next = newNode; newNode.prev = tail; tail = newNode; } else { Node current = head; for (int i = 0; i < location; i++) { current = current.next; } newNode.prev = current.prev; newNode.next = current; current.prev.next = newNode; current.prev = newNode; } size++; return newNode; } public Node delete(int location) { if (location < 0 || location >= size) { throw new IllegalArgumentException("Invalid location"); } Node deletedNode; if (location == 0) { deletedNode = head; head = head.next; if (head != null) { head.prev = null; } else { tail = null; } } else if (location == size - 1) { deletedNode = tail; tail = tail.prev; tail.next = null; } else { Node current = head; for (int i = 0; i < location; i++) { current = current.next; } deletedNode = current; current.prev.next = current.next; current.next.prev = current.prev; } size--; return deletedNode; } public int getIndex(T data) { Node current = head; for (int i = 0; i < size; i++) { if (current.data.equals(data)) { return i; } current = current.next; } return -1; } @Override public String toString() { StringBuilder result = new StringBuilder(); Node current = head; while (current != null) { result.append(current.data).append(" -> "); current = current.next; } result.append("NULL"); return result.toString(); } public Node shuffle() { Random r.