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
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);
|
|
}
|
|
}
|
|
|