📅  最后修改于: 2023-12-03 15:16:19.914000             🧑  作者: Mango
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()方法的比较也可以证明这一点。