Inner class and interface question (I posted some really long code)
I'm want to put the getHead() method in the BagInterface. However, I
can't do this because the compiler keeps saying it can't find 'class
Node' in Location BagInterface<T>. I guess this is because Node is an
inner class of my LinkedList class. Ideas how to fix this? Ideally I
want to preserve the inner class. Below is the complete working code
in question.
public class Main {
public static void main(String[] args) {
BagInterface <Integer> list = new LinkedList <Integer>();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(100));
list.add(new Integer(100));
list.add(new Integer(100));
list.add(new Integer(100));
list.add(new Integer(99));
list.add(new Integer(11));
list.printMe();
//System.out.println("The sum is " +
list.sumMe(list.getHead()));
}//end main
}
interface BagInterface<T> {
public void add(T newData);
public void printMe();
public Node getHead(); //<---Problem Line
}
class LinkedList<T> implements BagInterface<T>{
private Node firstNode;
private int numberOfEntries;
public LinkedList() {
firstNode = null;
numberOfEntries = 0;
}
class Node {
private T data;
Node next;
Node(T newData) {
this(newData, null);
}
Node(T newData, Node nextNode) {
data = newData;
next = nextNode;
}
Node getHead() {
return firstNode;
}
}//end class Node
public Node getNext() {
return firstNode.next;
}
public Node getHead() {
return firstNode;
}
public void add(T newData) {
Node newNode = new Node(newData);
newNode.next = firstNode;
firstNode = newNode;
numberOfEntries++;
}//end add
public void printMe() {
Node current = firstNode;
while (current != null) {
System.out.println(current.data);
current = current.next;
}
}
}