2 changed files with 55 additions and 0 deletions
@ -0,0 +1,38 @@ |
|||||
|
public class Pair<K, V> { |
||||
|
private K key; |
||||
|
private V value; |
||||
|
|
||||
|
// 构造方法
|
||||
|
public Pair(K key, V value) { |
||||
|
this.key = key; |
||||
|
this.value = value; |
||||
|
} |
||||
|
|
||||
|
// Getter/Setter
|
||||
|
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; |
||||
|
} |
||||
|
|
||||
|
// ✅ 修复后的静态 swap 方法
|
||||
|
public static <K, V> Pair<V, K> swap(Pair<K, V> pair) { |
||||
|
return new Pair<>(pair.getValue(), pair.getKey()); |
||||
|
} |
||||
|
|
||||
|
// 重写 toString
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
return "Pair{" + "key=" + key + ", value=" + value + '}'; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
public class TestPairSwap { |
||||
|
public static void main(String[] args) { |
||||
|
// 1. 原始 Pair:String + Integer(姓名-年龄)
|
||||
|
Pair<String, Integer> person = new Pair<>("张三", 20); |
||||
|
System.out.println("交换前:" + person); |
||||
|
|
||||
|
// 2. 调用静态 swap 方法,得到交换后的 Pair
|
||||
|
Pair<Integer, String> swappedPerson = Pair.swap(person); |
||||
|
System.out.println("交换后:" + swappedPerson); |
||||
|
|
||||
|
// 3. 相同类型的 Pair 也可以正常使用
|
||||
|
Pair<Double, Double> point = new Pair<>(116.40, 39.90); |
||||
|
System.out.println("交换前坐标:" + point); |
||||
|
Pair<Double, Double> swappedPoint = Pair.swap(point); |
||||
|
System.out.println("交换后坐标:" + swappedPoint); |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue