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

 更新时间:2026年07月03日 14:47:32   作者:五月天的尾巴  
这篇文章主要介绍了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
男

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java超详细分析继承与重写的特点

    Java超详细分析继承与重写的特点

    继承是Java面向对象编程中的一门。继承是子类继承父类的特征和行为,或者是继承父类得方法,使的子类具有父类得的特性和行为。重写是子类对父类的允许访问的方法实行的过程进行重新编写,返回值和形参都不能改变。就是对原本的父类进行重新编写,但是外部接口不能被重写
    2022-05-05
  • Java数组优点和缺点_动力节点Java学院整理

    Java数组优点和缺点_动力节点Java学院整理

    本文给大家简单介绍下java数组的优点和缺点知识,需要的的朋友参考下吧
    2017-04-04
  • IDEA中编写并运行shell脚本的实现

    IDEA中编写并运行shell脚本的实现

    这篇文章主要介绍了IDEA中编写并运行shell脚本的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • java提取json中某个数组的所有值方法

    java提取json中某个数组的所有值方法

    下面小编就为大家分享一篇java提取json中某个数组的所有值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • SpringBoot整合chatGPT的项目实践

    SpringBoot整合chatGPT的项目实践

    本文主要介绍了SpringBoot整合chatGPT的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java下载远程服务器文件到本地(基于http协议和ssh2协议)

    Java下载远程服务器文件到本地(基于http协议和ssh2协议)

    这篇文章主要介绍了Java下载远程服务器文件到本地的方法(基于http协议和ssh2协议),帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • Java Collection集合用法详解

    Java Collection集合用法详解

    首先Collection是属于单列集合的顶层接口,表示为一组对象。其类型为引用数据类型,具体创建对象,通过多态的形式进行,本文将给大家详细的介绍,需要的朋友可以参考下
    2021-10-10
  • SpringBoot使用SpringAI完成简单智能助手

    SpringBoot使用SpringAI完成简单智能助手

    本文详解如何在Spring Boot 3.5.9+环境中集成Spring AI框架,实现基于大模型的智能对话助手,涵盖环境配置、依赖引入、模型接入(如OpenAI/SiliconFlow)、ChatClient统一API调用、流式响应、System角色设定、多轮对话上下文管理等核心技术点,需要的朋友可以参考下
    2026-03-03
  • Spring boot集成swagger2生成接口文档的全过程

    Spring boot集成swagger2生成接口文档的全过程

    这篇文章主要给大家介绍了关于Spring boot集成swagger2生成接口文档的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Spring启动后获取所有拥有特定注解的Bean实例代码

    Spring启动后获取所有拥有特定注解的Bean实例代码

    这篇文章主要介绍了Spring启动后获取所有拥有特定注解的Bean实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论