java中return返回多个值或者多种类型的值的方法(list;Map)

本文介绍了在Java中如何返回多个值和不同类型值的三种方法:使用List返回值列表、使用Map存储单一类型数据以及结合List和Map返回混合类型数据。示例代码详细展示了每种方法的实现,并提供了测试用例进行验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java中return返回多个值或者多种类型的值的方法(list;Map)

1.在写方法的时候,有时候需要返回多个值,有时候返回的多个值的类型还不同,依据不同情况以下提供了三种方法返回多个值。

2.具体思路都在代码注释里了。如果返回的多个值类型相同,可以用方法一和方法二;如果返回的多个值类型不同,可以用方法三。

初试写作,略感激动。

import java.util.*;
public class Demo {

    //方法1:返回list
    public static List<int[]> returnList(){
        List<int[]> list=new ArrayList<>();
        list.add(new int[]{1});
        list.add(new int[]{1, 2});
        list.add(new int[]{1, 2, 3});
        return list;
    }

    //方法2:返回Map,一个Map只能有一种数据类型
    public static Map<String, Integer> returnMap(){
        Map<String,Integer> map = new HashMap<>();
        map.put("age",1);  //”age“是key,类似于索引,1是索引对应的int值
        map.put("high",30);
        //System.out.println(map.get("age"));
        Map<String,int[]> map1 = new HashMap<>();
        map1.put("array", new int[]{1, 2, 3});
        //System.out.println(Arrays.toString(  map1.get("array") ));
        return map;
    }

    //方法3:一次性返回两种类型的数据,结合了Map和list
    public static List<Map> returnMapList(){
        Map<String,Integer> map = new HashMap<>();
        map.put("age",1);
        map.put("high",30);
        Map<String,int[]> map1 = new HashMap<>();
        map1.put("array", new int[]{1, 2});
        List<Map> listMap = new ArrayList<Map>();
        listMap.add(map);
        listMap.add(map1);
        return listMap;

    }


//测试代码
    public static void main(String[] args){
        //返回list
        List<int[]> list1 = returnList();
        System.out.println(Arrays.toString(list1.get(0)) + Arrays.toString(list1.get(1)) + Arrays.toString(list1.get(2)) + "\nreturnlist结束\n");

        //返回Map,一个Map只能有一种数据类型
        Map<String,Integer> mapTest = returnMap();
        System.out.println("age = " + mapTest.get("age") +",   high = " + mapTest.get("high") +  "\nreturnMap结束\n");

        //一次性返回两种类型的数据,结合了Map和list
        List<Map> list2 = returnMapList();
        System.out.println(list2.get(0)  +" , " + list2.get(1)  + "\nreturnMapList结束");//list2.get(1)是数组的地址
        System.out.print("调用返回的int和int[]:");
        Map map0 = list2.get(0);
        Map map1 = list2.get(1);
        System.out.println( "age = " + map0.get("age") );
        System.out.println("array = " + Arrays.toString((int[]) map1.get("array")));
//      System.out.println(Arrays.toString((int[]) list2.get(1).get("array")));   //调用过程也可以这样写
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值