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.

65 lines
1.7 KiB

public class Pair<K, V> {
private K key;
private V value;
public Pair() {
this(null, null);
}
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
public K getKey() {
return key;
}
public void setKey(K key) {
this.key = key;
}
public V getValue() {
return value;
}
public void setValue(V value) {
this.value = value;
}
@Override
public String toString() {
return "(" + key + ", " + value + ")";
}
public static <K,V> Pair<V,K> swap(Pair<K,V> pair){
return new Pair<>(pair.getValue(),pair.getKey());
}
// ---------- 测试示例 ----------
public static void main(String[] args) {
// 创建不同类型的 Pair 实例
Pair<String, Integer> pair1 = new Pair<>("age", 25);
Pair<String, String> pair2 = new Pair<>("name", "Alice");
Pair<Integer, Double> pair3 = new Pair<>(100, 99.5);
// 输出初始内容
System.out.println("pair1: " + pair1);
System.out.println("pair2: " + pair2);
System.out.println("pair3: " + pair3);
// 测试 getter
System.out.println("pair1 key: " + pair1.getKey() + ", value: " + pair1.getValue());
// 测试 setter
pair1.setValue(30);
System.out.println("修改后 pair1: " + pair1);
// 泛型方法使用示例:交换两个 Pair 的值(演示泛型灵活性)
Pair<String, Integer> a = new Pair<>("x", 1);
System.out.println("交换前: a=" + a );
Pair<Integer,String> b = swap(a);
System.out.println("交换后: b=" + b );
}
}