前言
我们讨论了一个非常有用的编程概念,配对(Pair)。配对提供了一种方便方式来处理简单的键值关联,当我们想从方法返回两个值时特别有用。
我们平时写代码的时候经常会遇到要返回多个元素的情况,这时我们大多数时间都是使用数组或者map或者json的方式来实现的,而common-lang包提供了组件的方式来返回多个参数,我们这片文章要介绍的是Pair接口,返回一对数据Pair抽象类,它集成了Map.Entry接口;(这个由apache提供)
Pair是一个抽象类,这个类是定义基本API的抽象实现,它指的是左右两个元素,它也实现了Map.Entry接口,也就是key是左元素,value是右元素;
子类实现的是可能是可变的也可能是不可变的,然而对存储的对象类型是没有限制的,如果可变的对象存储在Pair中,那么Pair对象也会变为可变的;
市面上的实现
javafx.util 包中
Pair<Integer, String> pair = new Pair<>(1, "One");
Integer key = pair.getKey();
String value = pair.getValue();
JDK自带内部类:AbstractMap.SimpleEntry 和AbstractMap.SimpleImmutableEntry
SimpleEntry定义在抽象类AbstractMap里面,其构造方法与Pair类似:
AbstractMap.Si