网站链接: 我爱捣鼓
当前位置: 首页 > web开发 > JAVA

java函数中如何返回多个值?

2022/11/8 22:08:01

我们一般在写java函数时只会返回一个值,但有时我们需要在函数中返回多个值应该怎么办呢?使用数组 数组可用于返回基本数据类型和引用数据类型。 例如,下面的getCoordinates方法返回double数组:double[] getCoordinatesDoubleArray() { double[] coordi…

      我们一般在写java函数时只会返回一个值,但有时我们需要在函数中返回多个值应该怎么办呢?

  • 使用数组

      数组可用于返回基本数据类型和引用数据类型。

      例如,下面的getCoordinates方法返回double数组:


double[] getCoordinatesDoubleArray() {
  
    double[] coordinates = new double[2];
    coordinates[0] = 10;
    coordinates[1] = 12.5;
  
    return coordinates;
}

      如果要返回不同引用类型的数组,可以使用公共父类型作为数组的类型:

Number[] getCoordinatesNumberArray() {
  
    Number[] coordinates = new Number[2];
    coordinates[0] = 10;   // Integer
    coordinates[1] = 12.5; // Double
  
    return coordinates;
}

      这里我们定义了Number类型的coordinate数组,因为它是Integer和Double的共同父类。

  • 使用collections

      使用Java collections,我们可以返回一个类型的多个值。

      collections框架具有丰富的类和接口。但是,在本节中,我们将仅讨论List和Map。

  • 用List返回相似类型的值

      首先,让我们使用List重写前面的数组示例:


List<Number> getCoordinatesList() {
  
    List<Number> coordinates = new ArrayList<>();
  
    coordinates.add(10);  // Integer
    coordinates.add(12.5);  // Double
  
    return coordinates;
}

      与Number[]一样,List包含多个有公共父类的不同类型元素。

  • 用Map返回命名值

      如果要命名collections中的每个条目,可以使用Map:


Map<String, Number> getCoordinatesMap() {
  
    Map<String, Number> coordinates = new HashMap<>();
  
    coordinates.put("longitude", 10);
    coordinates.put("latitude", 12.5);
  
    return coordinates;
}

      getCoordinateMap方法的调用者可以使用longitude或latitude键以及Map的get方法来获取相应的值。

  • 使用容器类

      与数组和集合不同,容器类(pojo)可以包装不同数据类型的多个字段。

      例如,以下Coordinates类有两种不同的数据类型:double和String:


public class Coordinates {
  
    private double longitude;
    private double latitude;
    private String placeName;
  
    public Coordinates(double longitude, double latitude, String placeName) {
  
        this.longitude = longitude;
        this.latitude = latitude;
        this.placeName = placeName;
    }
  
    // getters and setters
}

      使用像Coordinates这样的容器类,我们可以用有意义的名称来建模复杂的数据类型。

      下一步是实例化并返回Coordinates类的实例:


Coordinates getCoordinates() {
  
    double longitude = 10;
    double latitude = 12.5;
    String placeName = "home";
  
    return new Coordinates(longitude, latitude, placeName);
}

      我们应该注意到,建议我们将coordinate等数据类设置为不可变的。通过这样做,我们可以创建简单的、线程安全的、可共享的对象。

        通过以上内容我们知道了java函数中返回多个值的方法。感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • springboot项目设置session生命周期时间的几种方法?

    java开发的springboot项目设置session生命周期时间的方法有三种,今天我们就来说说这三种方法。一丶修改Tomcat配置web.xml文件 在Tomcat服务器对应conf配置文件夹下的web.xml文件中修改<session-time-out></session-time-out>中的值. Tomcat默…

    2022/11/12 12:35:20
  • 图文教程一步一步教你在​idea中使用svn如何创建分支?

    我们在用idea开发java项目时需要通过svn创建项目分支,这样更高效率的开发新的项目,今天我们就通过图文教程一步一步教你idea中如何创建分支?第一步第二步第三步 通过以上内容我们知道了在idea中使用svn如何创建分支。感谢您访问“我爱捣鼓(www.woaidaogu.com)”…

    2022/11/12 12:23:28