Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.util.*;
- public class CashRegisterTest {
- public static void main(String[] args) {
- CashRegister cashRegister = new CashRegister();
- cashRegister.readBills(System.in);
- System.out.println("========== Latest 5 bills ==========");
- cashRegister.print(System.out, 0, 5);
- System.out.println("========== Top 5 by price ==========");
- cashRegister.print(System.out, 1, 5);
- }
- }
- class Cash implements Comparable<Cash>{
- protected String date;
- protected List<String> lista;
- public Cash(String date, List<String> lista) {
- this.date = date;
- this.lista=new ArrayList<String>();
- this.lista=lista;
- }
- public Cash() {
- lista=new ArrayList<String>();
- // TODO Auto-generated constructor stub
- }
- public double suma(){
- double sum=0;
- for (String string : lista) {
- String[] parts=string.split(" ");
- sum+=Double.parseDouble(parts[5]);
- }
- return sum;
- }
- public int brojProdukti(){
- return lista.size();
- }
- @Override
- public String toString() {
- //return "Cash [date=" + date + ", lista=" + lista + "]";
- return "date= " +date +"suma=" +suma();
- }
- public int getGodina(){
- String[] prvo=date.split("T");
- String[] vtoro=prvo[0].split("-");
- return Integer.parseInt(vtoro[0]);
- }
- public int getMesec(){
- String[] prvo=date.split("T");
- String[] vtoro=prvo[0].split("-");
- return Integer.parseInt(vtoro[1]);
- }
- public int getDen(){
- String[] prvo=date.split("T");
- String[] vtoro=prvo[0].split("-");
- return Integer.parseInt(vtoro[2]);
- }
- public int getCas(){
- String[] prvo=date.split("T");
- String[] vtoro=prvo[1].split(":");
- return Integer.parseInt(vtoro[0]);
- }
- public int getMinuti(){
- String[] prvo=date.split("T");
- String[] vtoro=prvo[1].split(":");
- return Integer.parseInt(vtoro[1]);
- }
- public int getSekundi(){
- String[] prvo=date.split("T");
- String[] vtoro=prvo[1].split(":");
- return Integer.parseInt(vtoro[2]);
- }
- @Override
- public int compareTo(Cash o) {
- if(Integer.compare(getGodina(), o.getGodina())==0){
- if(Integer.compare(getMesec(), o.getMesec())==0){
- if(Integer.compare(getDen(), o.getDen())==0){
- if(Integer.compare(getCas(), o.getCas())==0){
- if(Integer.compare(getMinuti(),o.getMinuti())==0){
- if(Integer.compare(getSekundi(), o.getSekundi())==0){
- return Integer.compare(brojProdukti(), o.brojProdukti());
- }else{
- return Integer.compare(getSekundi(), o.getSekundi());
- }
- }else{
- return Integer.compare(getMinuti(),o.getMinuti());
- }
- }else{
- return Integer.compare(getCas(), o.getCas());
- }
- }else{
- return Integer.compare(getDen(), o.getDen());
- }
- }else{
- return Integer.compare(getMesec(), o.getMesec());
- }
- }else{
- return Integer.compare(getGodina(), o.getGodina());
- }
- }
- }
- class CashRegister{
- protected List<Cash> keshoj;
- public CashRegister(){
- keshoj=new ArrayList<Cash>();
- }
- public void readBills(InputStream inputStream){
- Scanner scanner=new Scanner(inputStream);
- int flag=0;
- int flag1=0;
- String vreme="2015-05-05T22:46:00";
- while(scanner.hasNextLine()){
- String string = scanner.nextLine();
- String[] parts=string.split(" ");
- List<String> tmp=new ArrayList<String>();
- while(parts.length!=1){
- tmp.add(string);
- string=scanner.nextLine();
- parts=string.split(" ");
- flag=1;
- }
- if(flag==1){
- Cash cash=new Cash(vreme, tmp);
- keshoj.add(cash);
- flag=0;
- }
- if(parts.length==1){
- vreme=string;
- }
- }
- }
- public void print(OutputStream outputStream, int order, int top){
- List<Cash> tmp=new ArrayList<Cash>();
- PrintWriter pw=new PrintWriter(outputStream);
- StringBuilder sb=new StringBuilder();
- if(order==0){
- Collections.sort(keshoj);
- Collections.reverse(keshoj);
- for(int i=0;i<top;i++){
- tmp.add(keshoj.get(i));
- }
- }
- if(order==1){
- Collections.sort(keshoj, new Filterr());
- Collections.reverse(keshoj);
- for(int i=0;i<top;i++){
- tmp.add(keshoj.get(i));
- }
- }
- for (Cash cash : tmp) {
- sb.append(cash.toString());
- sb.append("\n");
- }
- pw.println(sb.toString());
- pw.flush();
- pw.close();
- }
- }
- class Filterr implements Comparator<Cash>{
- @Override
- public int compare(Cash arg0, Cash arg1) {
- if(Double.compare(arg0.suma(), arg1.suma())==0){
- return Integer.compare(arg0.brojProdukti(), arg1.brojProdukti());
- }
- return Double.compare(arg0.suma(), arg1.suma());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement