Java implementation Bag Class
ImportJava.util.Iterator;Importjava.util.NoSuchElementException;ImportJava.util.Scanner; Public classBag<item>ImplementsIterable<item> { Private intN; PrivateNode<item>First ; Private Static classNode<item> { Privateitem Item; PrivateNode<item>Next; } PublicBag () { First=NULL; N= 0; } Public BooleanIsEmpty () {returnFirst = =NULL; } Public intsize () {returnN; } Public voidAdd (item item) {Node<Item> Oldfirst =First ; First=NewNode<item>(); First.item=item; First.next=Oldfirst; N++; } PublicIterator<item>iterator () {return NewListiterator<item>(first); } Private classListiterator<item>ImplementsIterator<item> { PrivateNode<item>Current ; PublicListiterator (node<item>First ) { Current=First ; } Public BooleanHasnext () {returnCurrent! =NULL; } Public voidRemove () {Throw Newunsupportedoperationexception ();} PublicItem Next () {if(!hasnext ())Throw Newnosuchelementexception (); Item Item=Current.item; Current=Current.next; returnitem; } } Public Static voidMain (string[] args) {Bag<String> bag =NewBag<string>(); Scanner in=NewScanner (system.in); intn =In.nextint (); for(inti=0;i<n;i++) {String Item=In.next (); Bag.add (item); } System.out.println ("Size of bag =" +bag.size ()); for(String s:bag) {System.out.println (s); } Iterator<String> it =Bag.iterator (); while(It.hasnext ()) System.out.println (It.next ()); }}
Bag.java
Java implementation Bag Class