/** * 泛型 Pair 类 - 用于存储键值对 * @param 键的类型 * @param 值的类型 */ public class Pair { private K key; private V value; // 构造方法 public Pair(K key, V value) { this.key = key; this.value = value; } // Getter 方法 public K getKey() { return key; } public V getValue() { return value; } // Setter 方法 public void setKey(K key) { this.key = key; } public void setValue(V value) { this.value = value; } /** * swap 方法 - 交换当前 Pair 的 key 和 value * 注意:只有当 K 和 V 类型相同时才能交换,否则返回新 Pair */ public Pair swap() { return new Pair<>(value, key); } /** * 静态泛型方法 - 交换任意两个 Pair 对象 */ public static Pair swap(Pair pair) { return new Pair<>(pair.getValue(), pair.getKey()); } @Override public String toString() { return "Pair{" + "key=" + key + ", value=" + value + '}'; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Pair pair = (Pair) obj; return java.util.Objects.equals(key, pair.key) && java.util.Objects.equals(value, pair.value); } @Override public int hashCode() { return java.util.Objects.hash(key, value); } }