Browse Source

宋瑞-202506050301

main
Songrui 2 months ago
parent
commit
4660766d08
  1. 40
      w8/Pair.java
  2. 16
      w8/PairTest.java
  3. 30
      w8/ReadMe.md

40
w8/Pair.java

@ -0,0 +1,40 @@
// 泛型键值对类 Pair<K,V>
public class Pair<K, V> {
// 私有成员变量
private final K key;
private final V value;
// 构造方法
public Pair(K key, V value) {
this.key = key;
this.value = value;
}
// getter 方法
public K getKey() {
return key;
}
public V getValue() {
return value;
}
/**
* 静态泛型方法交换键值
* 传入 Pair<A,B>返回 交换后的 Pair<B,A>
*/
public static <A, B> Pair<B, A> swap(Pair<A, B> pair) {
// 空值防护
if (pair == null) {
return null;
}
// 新对象:把原值当key,原key当value
return new Pair<>(pair.getValue(), pair.getKey());
}
// 重写toString,方便打印
@Override
public String toString() {
return "[" + key + ", " + value + "]";
}
}

16
w8/PairTest.java

@ -0,0 +1,16 @@
public class PairTest {
public static void main(String[] args) {
// 1. 创建原始 Pair
Pair<String, Integer> p1 = new Pair<>("身高", 180);
System.out.println("交换前:" + p1);
// 2. 调用静态swap方法交换键值
Pair<Integer, String> p2 = Pair.swap(p1);
System.out.println("交换后:" + p2);
// 再测试一组
Pair<Integer, Double> p3 = new Pair<>(10, 99.5);
Pair<Double, Integer> p4 = Pair.swap(p3);
System.out.println("另一组交换:" + p4);
}
}

30
w8/ReadMe.md

@ -0,0 +1,30 @@
对话主题
Java 泛型类 Pair<K,V> 设计、编写,以及实现静态 swap 交换键值方法
交互时间线 & 完整对话内容
1. 用户提问
设计泛型类 Pair<K,V>,怎么设计,具体应该怎么做
2. AI 回复
讲解泛型类 Pair<K,V> 设计思路:
泛型类语法 public class Pair<K,V>
定义私有泛型成员变量 key、value
提供构造方法、getter 方法
给出完整可运行 Pair<K,V> 基础版代码
提供测试类演示不同类型 Pair 的使用
3. 用户接着提问
如何让实现一个静态方法,交换 Pair 的键和值
4. AI 回复
讲解静态泛型 swap 方法核心原理:
静态方法需单独声明泛型 <A,B>
接收 Pair<A,B>,返回反转类型 Pair<B,A>
编写带静态 swap 方法的增强版 Pair 类
给出测试代码,演示键值互换效果
解释为什么不能用类上的 K、V,必须方法自定义泛型
5. 用户指令
完成 Pair<K,V> 及其 swap 方法
6. AI 最终交付
给出最终完整版不可变 Pair<K,V> 完整代码 + 测试类代码:
私有 final 成员变量
构造方法、getter
静态泛型 swap 方法(做空判断、返回新交换对象)
重写 toString
配套测试类,多组类型测试交换效果
Loading…
Cancel
Save