Java的Pair是什么
时间: 2024-12-27 10:15:07 浏览: 4
### Java 中 `Pair` 类的定义
在 Java 编程语言中,`Pair<K,V>` 是一种用于存储两个相关联对象的数据结构。这类数据结构通常被设计成泛型类来增强灵活性和类型安全性。
#### 泛型定义
`Pair` 的定义采用了泛型机制,允许创建能够容纳任意类型的键值对实例:
```java
public final class Pair<K, V> {
private K key;
private V value;
public static <K, V> Pair<K, V> of(K key, V value) { ... }
// Getter methods without setters to ensure immutability.
public K getKey() { return this.key; }
public V getValue() { return this.value; }
@Override
public boolean equals(Object o) { /* Implementation */ }
@Override
public int hashCode() { /* Implementation */ }
}
```
上述代码展示了如何通过静态工厂方法 `of()` 来简化 `Pair` 实例化过程[^4]。值得注意的是,在某些库中(如 Apache Commons Lang3),除了标准的获取器之外还提供了别名形式的方法 `getLeft()/getRight()` 以便更直观地访问成员变量[^1]。
### 使用方法
当涉及到具体应用时,开发者可以根据实际需求选择合适的 API 或者第三方库提供的实现版本。以下是几种常见的场景展示:
#### 创建并操作 Pairs
对于来自不同包下的 `Pair` 类而言,其初始化方式略有区别。以官方提供的 javafx.util.Pair 和 commons-lang3 库为例:
- **JavaFX 版本**
```java
// 初始化一个新的 Pair 对象
Pair<Integer, String> pair = new Pair<>(1, "One");
// 获取键和值
Integer key = pair.getKey();
String value = pair.getValue();
```
这段代码片段显示了使用构造函数直接构建 `Pair` 对象的过程以及基本属性读取的操作[^2]。
- **Apache Commons Lang3 版本**
```java
import org.apache.commons.lang3.tuple.ImmutablePair;
ImmutablePair<String, String> lang3Pair = ImmutablePair.of("key", "value");
System.out.println(lang3Pair.getLeft()); // 输出: key
System.out.println(lang3Pair.getRight()); // 输出: value
```
这里采用静态导入的方式引入了 `org.apache.commons.lang3.tuple.ImmutablePair` 下的 `of()` 工厂方法来进行快速赋值,并且利用了额外提供的 getter 别名。
#### 存储多个 Pairs
如果需要在一个集合里保存多组关联数据,则可以通过列表或其他容器完成这一目标:
```java
List<Pair<String, String>> list = Arrays.asList(
Pair.of("str2", "staffcode_2"),
Pair.of("str3", "staffcode_1"),
Pair.of("str1", "staffcode_0")
);
```
此部分演示了怎样将若干个 `Pair` 添加到一个 `ArrayList` 当中去。
阅读全文