From 3b72e1704f4b2347ebea617b9627ddefe9005015 Mon Sep 17 00:00:00 2001 From: liuhuan Date: Thu, 2 Jan 2020 10:31:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A0=E4=B8=BAMap/Set=E7=9A=84key=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E7=9A=84=E6=98=AF=E4=B8=8D=E9=87=8D=E5=A4=8D=E7=9A=84?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=EF=BC=8C=E4=BE=9D=E6=8D=AEhashCode=E5=92=8Ce?= =?UTF-8?q?quals=E8=BF=9B=E8=A1=8C=E5=88=A4=E6=96=AD=EF=BC=8C=E6=89=80?= =?UTF-8?q?=E4=BB=A5Set=E5=AD=98=E5=82=A8=E7=9A=84=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E9=87=8D=E5=86=99=E8=BF=99=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/core/lang/Pair.java | 19 +++++++++++++++ .../java/cn/hutool/core/map/TableMap.java | 23 ++++++++++++++----- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Pair.java b/hutool-core/src/main/java/cn/hutool/core/lang/Pair.java index f1d6d92ba..2b6d28ca8 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Pair.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Pair.java @@ -1,6 +1,7 @@ package cn.hutool.core.lang; import java.io.Serializable; +import java.util.Objects; import cn.hutool.core.clone.CloneSupport; @@ -50,4 +51,22 @@ public class Pair extends CloneSupport> implements Serializable public String toString() { return "Pair [key=" + key + ", value=" + value + "]"; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o instanceof Pair) { + Pair pair = (Pair) o; + return Objects.equals(getKey(), pair.getKey()) && + Objects.equals(getValue(), pair.getValue()); + } + return false; + } + + @Override + public int hashCode() { + //copy from 1.8 HashMap.Node + return Objects.hashCode(key) ^ Objects.hashCode(value); + } } diff --git a/hutool-core/src/main/java/cn/hutool/core/map/TableMap.java b/hutool-core/src/main/java/cn/hutool/core/map/TableMap.java index 48b8718a6..7b4be3645 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/TableMap.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/TableMap.java @@ -1,12 +1,7 @@ package cn.hutool.core.map; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; @@ -154,6 +149,22 @@ public class TableMap implements Map, Serializable { public V setValue(V value) { throw new UnsupportedOperationException("setValue not supported."); } + @Override + public final boolean equals(Object o) { + if (o == this) + return true; + if (o instanceof Map.Entry) { + Map.Entry e = (Map.Entry)o; + return Objects.equals(key, e.getKey()) && + Objects.equals(value, e.getValue()); + } + return false; + } + @Override + public int hashCode() { + //copy from 1.8 HashMap.Node + return Objects.hashCode(key) ^ Objects.hashCode(value); + } } }