From 940ad274add26fd5aaf5ea4cb077eef8a5b3c488 Mon Sep 17 00:00:00 2001 From: iMoHax Date: Tue, 23 Jun 2015 17:57:31 +0300 Subject: [PATCH] implement equals for route --- .../main/java/ru/trader/analysis/Route.java | 2 +- .../java/ru/trader/analysis/RouteEntry.java | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/ru/trader/analysis/Route.java b/core/src/main/java/ru/trader/analysis/Route.java index ee2d1fd..a75094f 100644 --- a/core/src/main/java/ru/trader/analysis/Route.java +++ b/core/src/main/java/ru/trader/analysis/Route.java @@ -120,7 +120,7 @@ public class Route { if (this == o) return true; if (!(o instanceof Route)) return false; Route route = (Route) o; - return entries.equals(route.entries); + return Double.compare(route.profit, profit) == 0 && entries.equals(route.entries); } @Override diff --git a/core/src/main/java/ru/trader/analysis/RouteEntry.java b/core/src/main/java/ru/trader/analysis/RouteEntry.java index 0feef19..48d502c 100644 --- a/core/src/main/java/ru/trader/analysis/RouteEntry.java +++ b/core/src/main/java/ru/trader/analysis/RouteEntry.java @@ -83,6 +83,33 @@ public class RouteEntry { return !isLand(); } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof RouteEntry)) return false; + + RouteEntry that = (RouteEntry) o; + if (land != that.land) return false; + if (refill != that.refill) return false; + if (Double.compare(that.fuel, fuel) != 0) return false; + if (orders.size() != that.orders.size()) return false; + return vendor.equals(that.vendor); + } + + @Override + public int hashCode() { + int result; + long temp; + result = vendor.hashCode(); + temp = Double.doubleToLongBits(fuel); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + result = 31 * result + (land ? 1 : 0); + result = 31 * result + (refill ? 1 : 0); + temp = Double.doubleToLongBits(score); + result = 31 * result + (int) (temp ^ (temp >>> 32)); + return result; + } + @Override public String toString() { return vendor + (isRefill() ? " (R)":"");