In this HackerEarth Notes and coins OOPS - Java, Java8 problem solution you are given M number of coins and P number of notes. Write a program to separate the two forms of money without creating two separate classes for notes and coins.


HackerEarth Notes and coins <OOPS - Java, Java8> problem solution


HackerEarth Notes and coins OOPS - Java, Java8 problem solution.

import java.util.*;
interface Executable
{
int getValue();
}
class Coin implements Executable
{
int val;
public void setValue(int val)
{
this.val=val;
}
public int getValue()
{
return this.val;
}
}
class Note implements Executable
{
int val;
public void setValue(int val)
{
this.val=val;
}
public int getValue()
{
return this.val;
}
}
class Bag<T extends Executable>
{
ArrayList<T> al=new ArrayList<T>();
public void add(T obj)
{
al.add(obj);
}
public void display()
{
for(T obj : al)
{
System.out.println(obj.getValue());
}
}
}
class Main
{
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
int n,val=0;
String str="";
//Scan Total number of Coins and Notes
//given by client
n=sc.nextInt();
//A bag to store Coins
Bag<Coin> bagOfCoins=new Bag<Coin>();
//A bag to store Notes
Bag<Note> bagOfNotes=new Bag<Note>();
for(int i=0;i<n;i++)
{
//Scan whether its a Coin or a Note
str=sc.next();
//Scan the denomination of the Coin/Note
val=sc.nextInt();
switch(str)
{
case "Coin":
Coin coin=new Coin();
//Set the value of Coin and add it to the bag
coin.setValue(val);
bagOfCoins.add(coin);
break;
case "Note":
Note note=new Note();
//Set the value of Note and add it to the bag
note.setValue(val);
bagOfNotes.add(note);
break;
}
}
System.out.println("Coins :");
bagOfCoins.display();
System.out.println("Notes :");
bagOfNotes.display();
}
}