在编写java代码时,会遇到一个方法中需要返回多个返回值的场景。
比如一个方法中返回两个boolean值,或者返回一个String,一个Integer类型,或者多个对象。
常规我们写一般会用一个对象将这些内容封装起来,然后返回,或者使用Map将他们存起来返回。
Pair、Triple
org.apache.commons.lang3
提供了返回多个值的工具类,返回2个值用Pair,3个值用Triple
cn.hutool.core.lang
包中也提供了关于Pair的工具包
以下内容主要基于 commons-lang3
包进行讲解。
在 commons-lang3 包中主要提供了两种Pair类的用法:
一种是Pair<L, R>理解为左边与右边;
一种是Pair<K, V> 键值对key-value的形式;
org.apache.commons.math3.util.Pair
org.apache.commons.math3.util.Pair是Pair<K, V>键值对的形式,提供的方法主要是getKey(),getValue()
1 | import org.apache.commons.math3.util.Pair; |
执行结果:
1 | true |
org.apache.commons.lang3.tuple.Pair
org.apache.commons.lang3.tuple.Pair是一个抽象类
提供Pair<L, R>左边与右边的形式的工具类,获取值的方法有getKey(), getValue(),getLeft(),getRight()
1 | import org.apache.commons.lang3.tuple.ImmutablePair; |
执行结果:
1 | true |
org.apache.commons.lang3.tuple.Triple
Triple提供返回三个参数的工具包,Triple也是一个抽象类,以Triple<L, M, R>的形式返回三个参数
1 | import org.apache.commons.lang3.tuple.ImmutableTriple; |
执行结果:
1 | 张三 |