Pair 类介绍

在 Java 中,Pair 是一个比较常用的类,通常用于存储一对相关联的对象。

与 Map 相比,Pair 的特点:

  • 简单的数据结构,通常返回两个值
  • 轻量级,只包含两个字段
  • 临时存储
  • key 和 value 没有任何对应关系

Pair 类的使用

虽然 Java 的标准库并没有提供该类,我们可以使用 JavaFX 库、Apache Commons Lang 提供的 Pair 类或自定义 Pair 类。

Apache Commons Lang

  1. 添加依赖:

    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
    </dependency>
  2. 使用 Pair 类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import org.apache.commons.lang3.tuple.Pair;

    public class Main {
    public static void main(String[] args) {
    Pair<String, Integer> pair = Pair.of("Hello", 1);
    System.out.println("Key: " + pair.getLeft());
    System.out.println("Value: " + pair.getRight());
    }
    }

JavaFX

  1. 添加依赖:

    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-base</artifactId>
    <version>17.0.2</version>
    </dependency>
  2. 使用 Pair 类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import javafx.util.Pair;

    public class Main {
    public static void main(String[] args) {
    Pair<String, Integer> pair = new Pair<>("Hello", 1);
    System.out.println("Key: " + pair.getKey());
    System.out.println("Value: " + pair.getValue());
    }
    }

自己实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;
}

@Override
public String toString() {
return "Pair{" +
"key=" + key +
", value=" + value +
'}';
}
}

public class Main {
public static void main(String[] args) {
Pair<String, Integer> pair = new Pair<>("Hello", 1);
System.out.println("Key: " + pair.getKey());
System.out.println("Value: " + pair.getValue());
}
}