I have a class that creates multiple Integer objects and puts them into a LinkedList as shown below:
public class Shares<E> implements Queue<E> {
    protected LinkedList<E> L;
    public Shares() {
        L = new LinkedList<E>();
    }
    public boolean add(E price) {
        System.out.println("How many of these shares would you like?");
        Scanner scanInt;
        scanInt = new Scanner(System.in);
        Integer noShares = scanInt.nextInt();
        for (int i = 0; i < noShares; i++) {
            L.addLast(price);
        }
        scanInt.close();
        return true;
    }
}
I have an application that scans for the input "add" from the console and if found, invokes the method add as shown below:
public class Application {
    private static Scanner scan;
    public static <E> void main(String[] args) {
        Queue<Integer> S = new Shares<Integer>();
        scan = new Scanner(System.in);
        System.out.println("Please type add");
        String sentence = scan.nextLine();
        while (sentence.equals("quit") == false) {
            if (sentence.equals("add")) {
                System.out
                    .println("What price would you like to buy your shares at?");
                S.add((Integer) scan.nextInt());
            } else
                System.exit(0);
            sentence = scan.nextLine();
        }
    }
}
The application should allow the user to enter "add" as many times as they wish but the error "no line found" appears after the add method has been invoked.
I'm guessing this is because the Scanner in the method, has not been closed and then reopened when needed. Is this what is wrong with the program and if so, how would I go about fixing it?
Please note, this program is not finished, as I will be adding a selling method that sells these shares. That is why I am using a while loop.
 
     
     
     
    