java方法返回多个值,使用Pair、Triple

前言

在编写java代码时,会遇到一个方法中需要返回多个返回值的场景。比如一个方法中返回两个boolean值;或者返回一个String,一个Integer类型; 以下整理java中一个方法返回多个值的写法。

一、返回bean实体类

新建一个实体类,将需要返回的信息存放在实体类中

public class Test  {
    public static void main(String[] args) {
        Student student = getStudent();
        System.out.println(student);
    }

    public static Student getStudent(){
        Student  student = new Student();
        student.setName("张三");
        student.setAge(11);
        student.setSex("男");
        return student;
    }
}
@Data
class Student{
    String name; //姓名
    int age;// 年龄
    String sex; //性别
}

执行结果:

Student(name=张三, age=11, sex=)

二、返回map集合

将返回信息存放在map集合中

public class Test  {
    public static void main(String[] args) {
        Map<String,Object> map = getStudent();
        System.out.println("姓名:"+map.get("name")+",年龄:"+map.get("age")+",性别:"+map.get("sex"));
    }

    public static Map<String,Object> getStudent(){
        Map<String,Object> map = new HashMap<>();
        map.put("name", "张三");
        map.put("age", 11);
        map.put("sex", "男");
        return map;
    }
}

执行结果:

姓名:张三,年龄:11,性别:男

三、返回String[]

若一个方法需要返回的类型都是String类型,可以使用String[]数组

public class Test  {
    public static void main(String[] args) {
        String[] arr = getStudent();
        System.out.println("姓名:"+arr[0]+",性别:"+arr[1]);
    }

    public static String[] getStudent(){
        String[] arr = new String[2];
        arr[0] = "张三";
        arr[1] = "男";
        return arr;
    }
}

执行结果:

姓名:张三,年龄:11,性别:男

四、List<Object>

public class Test  {
    public static void main(String[] args) {
        List<Object> list = getStudent();
        System.out.println("姓名:"+list.get(0)+",年龄:"+list.get(1)+",性别:"+list.get(2));
    }

    public static List<Object> getStudent(){
        List<Object> list = new ArrayList<>();
        list.add("张三");
        list.add(11);
        list.add("男");
        return list;
    }
}

执行结果:

姓名:张三,年龄:11,性别:男

五、Pair、Triple

org.apache.commons.lang3 提供了返回多个值的工具类,返回2个值用Pair,3个值用Triple

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

cn.hutool.core.lang包中也提供了关于Pair的工具包

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.5.3</version>
</dependency>

以下内容主要基于commons-lang3包进行讲解。
在commons-lang3包中主要提供了两种Pair类的用法:一种是Pair<L, R>理解为左边与右边;一种是Pair<K, V> 键值对key-value的形式;

5.1 org.apache.commons.math3.util.Pair

org.apache.commons.math3.util.Pair是Pair<K, V>键值对的形式,提供的方法主要是getKey(),getValue()

import org.apache.commons.math3.util.Pair;

public class Test  {
    public static void main(String[] args) {
        //org.apache.commons.math3.util.Pair;
        Pair<Boolean,String> pair = new Pair<>(true,"张三");
        System.out.println(pair.getKey());
        System.out.println(pair.getValue());
    }
}

执行结果:

true
张三

5.2 org.apache.commons.lang3.tuple.Pair

org.apache.commons.lang3.tuple.Pair是一个抽象类,提供Pair<L, R>左边与右边的形式的工具类,获取值的方法有getKey(), getValue(),getLeft(),getRight()

import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;

public class Test  {
    public static void main(String[] args) {
        Pair<Boolean,String> pair = new ImmutablePair<>(true,"张三");
        System.out.println(pair.getKey());
        System.out.println(pair.getValue());
        System.out.println(pair.getLeft());
        System.out.println(pair.getRight());
    }
}

执行结果:

true
张三
true
张三

5.3 cn.hutool.core.lang.Pair

cn.hutool.core.lang.Pair是Pair<K, V>键值对的形式,提供的方法主要是getKey(),getValue()

pom文件引入依赖

<dependency>
   <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.3</version>
</dependency>

代码示例

import cn.hutool.core.lang.Pair;

public class Test {
    public static void main(String[] args){
        Pair<Boolean,String> pair = new Pair<>(true,"张三");
        System.out.println(pair.getKey());
        System.out.println(pair.getValue());
    }
}

结果:

true
张三

5.4 org.apache.commons.lang3.tuple.Triple

Triple提供返回三个参数的工具包,Triple也是一个抽象类,以Triple<L, M, R>的形式返回三个参数

import org.apache.commons.lang3.tuple.ImmutableTriple;
import org.apache.commons.lang3.tuple.Triple;

public class Test  {
    public static void main(String[] args) {
        Triple triple = new ImmutableTriple("张三", 11,"男");
        System.out.println(triple.getLeft());
        System.out.println(triple.getMiddle());
        System.out.println(triple.getRight());
    }
}

执行结果:

张三
11
  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值