diff --git a/03/src/main/java/ch/zhaw/ads/Competitor.java b/03/src/main/java/ch/zhaw/ads/Competitor.java index c7549fb..c187739 100644 --- a/03/src/main/java/ch/zhaw/ads/Competitor.java +++ b/03/src/main/java/ch/zhaw/ads/Competitor.java @@ -2,8 +2,11 @@ package ch.zhaw.ads; import java.util.*; import java.text.*; +import java.lang.Comparable; +import java.lang.Integer; +import java.lang.Long; -public class Competitor { +public class Competitor implements Comparable { private String name; private String country; private long time; @@ -55,4 +58,17 @@ public class Competitor { return sb.toString(); } + @Override + public int compareTo(Competitor other) { + if (this.equals(other)) { + return 0; + } + return new Long(this.getTime()).compareTo(new Long(other.getTime())); + } + + public boolean equals(Competitor other) { + return this.getName().equals(other.getName()) + && new Integer(this.getJg()).equals(new Integer(other.getJg())) + && new Long(this.getTime()).equals(new Long(other.getTime())); + } } diff --git a/03/src/main/java/ch/zhaw/ads/RankingServer.java b/03/src/main/java/ch/zhaw/ads/RankingServer.java index 5b67d65..6460f2c 100644 --- a/03/src/main/java/ch/zhaw/ads/RankingServer.java +++ b/03/src/main/java/ch/zhaw/ads/RankingServer.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.text.ParseException; import java.lang.ArrayIndexOutOfBoundsException; +import java.util.Collections; public class RankingServer implements CommandExecutor { List competitors; @@ -17,6 +18,15 @@ public class RankingServer implements CommandExecutor { for (Competitor competitor : competitors) { result.append(competitor.toString() + "\n"); } + + Collections.sort(competitors); + result.append("\n\nSorted Competitors (by time):\n"); + // set the ranks and append to output + for (int i = 0; i < competitors.size(); i++) { + Competitor competitor = competitors.get(i); + competitor.setRank(i + 1); + result.append(competitor.toString() + "\n"); + } return result.toString(); }