You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

89 lines
1.8 KiB

package com.example;
/**
* 泛型Pair类,用于存储两个不同类型的值
* @param <K> 键的类型
* @param <V> 值的类型
*/
public class Pair<K, V> {
private K key;
private V value;
/**
* 构造方法
* @param key 键
* @param value 值
*/
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
/**
* 获取键
* @return 键
*/
public K getKey() {
return key;
}
/**
* 设置键
* @param key 键
*/
public void setKey(K key) {
this.key = key;
}
/**
* 获取值
* @return 值
*/
public V getValue() {
return value;
}
/**
* 设置值
* @param value 值
*/
public void setValue(V value) {
this.value = value;
}
@Override
public String toString() {
return "Pair{" +
"key=" + key +
", value=" + value +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pair<?, ?> pair = (Pair<?, ?>) o;
if (key != null ? !key.equals(pair.key) : pair.key != null) return false;
return value != null ? value.equals(pair.value) : pair.value == null;
}
@Override
public int hashCode() {
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
return result;
}
/**
* 静态工厂方法,创建Pair实例
* @param key 键
* @param value 值
* @param <K> 键的类型
* @param <V> 值的类型
* @return Pair实例
*/
public static <K, V> Pair<K, V> of(K key, V value) {
return new Pair<>(key, value);
}
}