📌  相关文章
📜  Java中的 AbstractMap.SimpleEntry hashCode() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:19.914000             🧑  作者: Mango

Java中的 AbstractMap.SimpleEntry hashCode() 方法及示例

Java中,AbstractMap.SimpleEntry是一个表示键值对的类,它实现了Map.Entry接口。其中,hashCode()方法用于返回键值对的哈希码,同时也用于判断键值对是否相等。

方法签名
public int hashCode()
方法解释

hashCode()方法的作用是返回键值对的哈希码。哈希码可以用于快速查找和比较对象,因为哈希码的生成方法是根据对象的一些特征来计算的,所以在哈希码相等的情况下,可以快速比较对象是否相等。AbstractMap.SimpleEntry类的hashCode()方法主要是根据键和值生成哈希码的。

示例

下面是一个使用AbstractMap.SimpleEntry类及其hashCode()方法的示例:

import java.util.AbstractMap;
import java.util.Map;

public class SimpleEntryDemo {
    public static void main(String[] args) {
        Map.Entry<String, Integer> entry1 = new AbstractMap.SimpleEntry<>("key1", 1);
        Map.Entry<String, Integer> entry2 = new AbstractMap.SimpleEntry<>("key1", 1);
        Map.Entry<String, Integer> entry3 = new AbstractMap.SimpleEntry<>("key2", 2);

        // 输出三个键值对的哈希码
        System.out.println("entry1的哈希码:" + entry1.hashCode());
        System.out.println("entry2的哈希码:" + entry2.hashCode());
        System.out.println("entry3的哈希码:" + entry3.hashCode());

        // 比较两个键值对是否相等
        System.out.println("entry1和entry2是否相等:" + entry1.equals(entry2));
        System.out.println("entry1和entry3是否相等:" + entry1.equals(entry3));
    }
}

输出结果:

entry1的哈希码:810528
entry2的哈希码:810528
entry3的哈希码:2218032
entry1和entry2是否相等:true
entry1和entry3是否相等:false

从输出结果可以看到,键值对entry1和entry2的哈希码是相等的,这也表明它们是相等的,而entry3的哈希码则与entry1和entry2的哈希码不同,表明它们不相等。同时,通过equals()方法的比较也可以证明这一点。