Question: I'm having trouble getting my get method to work so I was told it would be better to post the while thing for better help.
I'm having trouble getting my get method to work so I was told it would be better to post the while thing for better help.
In my driver folder I keep getting error "The value at location 2 is: DHSingleLinkedList$Node@1175e2db" when I try to run the driver. The get method in my driver class looks like this:
(it's all done in java)
Object value = list.get(2); System.out.println("The value at location 2 is: " + value); That is not the complete code for the driver class but it's the code that keeps giving me an error.
The get method in the code below is what it looks like. To me it looks fine but I don't know why it keeps giving me that error when i run the driver.
public class DHSingleLinkedList { private class Node { private F data; private Node next;
public Node(F data, Node next) { this.data = data; this.next = next; } public Node(F data) { this(data, null); } } private Node head; private int size; public DHSingleLinkedList() { this.head = new Node(null); this.size = 0; } @Override public void add(int index, E item) { if(index < 0 || index > size) { System.out.println("Invalid Index!"); return; } else if(index == 0) { addFirst(item); } else { Node node = getNode(index); addAfter(node, item); } }
private void addAfter(Node node, E item) { node.next = new Node(item, node.next); size++; }
private Node getNode(int index) { if(index < 0 || index > size) { System.out.println("Invalid Index!"); return null; }
Node node = head; for (int i = 0; i < index && node != null; i++) { node = node.next; } return node; }
private void addFirst(E item) { head.next = new Node(item, head.next); size++; }
@Override public E remove(int index) { if(index < 0 || index > size) { System.out.println("Invalid Index!"); return null; } else if(index == 0) { return removeFirst(); } else { Node node = getNode(index); return removeAfter(node); } }
private E removeAfter(Node node) { Node temp = node.next; if(temp != null) { node.next = temp.next; size--; return temp.data; } return null; }
private E removeFirst() { Node temp = head; if(temp != null) { head = head.next; size--; return temp.data; } return null; }
@Override public E get(int index) { int n = 0; if (n > size) { return null; } Node node = head; for (int i = 0;i < n; i++) { node = node.next; } return (E) node.next; }
@Override public E set(int index, E newValue) { // TODO Auto-generated method stub return null; }
@Override public int size() { return this.size; } public String toString() { String s = "["; Node p = head; if(p != null) { while(p.next != null) { s += p.next.data + " -> "; p = p.next; } } s +="]"; return s; } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
