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