summaryrefslogtreecommitdiff
path: root/altoslib/AltosMapPathPoint.java
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2015-06-20 09:35:26 -0700
committerKeith Packard <keithp@keithp.com>2015-06-22 21:04:43 -0700
commit0cc03210d5d53d12604688f294b6ca39e3a025de (patch)
tree9bbe8895ef8d84502bec6b73c71299131b1c1b5b /altoslib/AltosMapPathPoint.java
parent5568c30f0a4fe346b8ed58934c23653064427d65 (diff)
altoslib/altosuilib: Fix equals methods, add hashCode
Whenever we use a class as a HashMap key, that class needs to override the equals(Object) and hashCode() methods. Otherwise, the hash table won't work right. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altoslib/AltosMapPathPoint.java')
-rw-r--r--altoslib/AltosMapPathPoint.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/altoslib/AltosMapPathPoint.java b/altoslib/AltosMapPathPoint.java
index 9f82f02a..0d54744a 100644
--- a/altoslib/AltosMapPathPoint.java
+++ b/altoslib/AltosMapPathPoint.java
@@ -26,10 +26,19 @@ public class AltosMapPathPoint {
public AltosLatLon lat_lon;
public int state;
- public boolean equals(AltosMapPathPoint other) {
- if (other == null)
+ public int hashCode() {
+ return lat_lon.hashCode() ^ state;
+ }
+
+ public boolean equals(Object o) {
+ if (o == null)
return false;
+ if (!(o instanceof AltosMapPathPoint))
+ return false;
+
+ AltosMapPathPoint other = (AltosMapPathPoint) o;
+
return lat_lon.equals(other.lat_lon) && state == other.state;
}