1 changed files with 51 additions and 0 deletions
@ -0,0 +1,51 @@ |
|||
/** |
|||
* 泛型 Pair 类,表示一个键值对。 |
|||
* @param <K> 键的类型 |
|||
* @param <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; |
|||
} |
|||
|
|||
public K getKey() { |
|||
return key; |
|||
} |
|||
|
|||
public V getValue() { |
|||
return value; |
|||
} |
|||
|
|||
/** |
|||
* 静态方法:交换 Pair 的键和值。 |
|||
* @param pair 原始 Pair 对象 |
|||
* @param <K> 原始键的类型 |
|||
* @param <V> 原始值的类型 |
|||
* @return 一个新的 Pair 对象,键值互换后的结果 |
|||
*/ |
|||
public static <K, V> Pair<V, K> swap(Pair<K, V> pair) { |
|||
// 如果输入为 null,可根据需求返回 null 或抛出异常(此处返回 null)
|
|||
if (pair == null) { |
|||
return null; |
|||
} |
|||
return new Pair<>(pair.getValue(), pair.getKey()); |
|||
} |
|||
|
|||
@Override |
|||
public String toString() { |
|||
return "Pair{" + key + ", " + value + "}"; |
|||
} |
|||
|
|||
// 简单的测试示例
|
|||
public static void main(String[] args) { |
|||
Pair<String, Integer> original = new Pair<>("age", 25); |
|||
System.out.println("Original: " + original); |
|||
|
|||
Pair<Integer, String> swapped = Pair.swap(original); |
|||
System.out.println("Swapped: " + swapped); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue