package com.huawei.search.smartsnippet.util; import java.util.Objects; /** * copy from com.sun.tools.javac.util.Pair * */ public class Pair<A, B> { public final A fst; public final B snd; public Pair(A fst, B snd) { this.fst = fst; this.snd = snd; } public String toString() { return "Pair[" + fst + "," + snd + "]"; } public boolean equals(Object other) { return other instanceof Pair<?,?> && Objects.equals(fst, ((Pair<?,?>)other).fst) && Objects.equals(snd, ((Pair<?,?>)other).snd); } public int hashCode() { if (fst == null) return (snd == null) ? 0 : snd.hashCode() + 1; else if (snd == null) return fst.hashCode() + 2; else return fst.hashCode() * 17 + snd.hashCode(); } public static <A,B> Pair<A,B> of(A a, B b) { return new Pair<>(a,b); } }这个类该怎么理解
时间: 2024-04-26 13:25:43 浏览: 283
HuaWei-FPGA.rar_fpga 设计方案_site:www.pudn.com_华为fpga
这个类是一个泛型类,其名称为 Pair,表示一对值的数据结构。该类有两个类型参数 A 和 B,用于表示这一对值的类型。其中,成员变量 fst 和 snd 分别表示这一对值的第一个值和第二个值,这两个变量都是 final 型的,即在创建对象后不能再被修改。构造函数 Pair(A fst, B snd) 用于创建这一对值的对象,需要传入两个参数,分别表示这一对值的第一个值和第二个值。toString() 方法用于返回这一对值的字符串表示,equals() 方法用于比较两个 Pair 对象是否相等,hashCode() 方法用于计算这个 Pair 对象的哈希值。静态方法 of(A a, B b) 用于快速创建一个 Pair 对象,该方法返回一个新的 Pair 对象,其中第一个值为 a,第二个值为 b。这个类的主要作用是封装一对值,方便在程序中使用和传递。
阅读全文