【问题标题】:java - using elements from returned arrayjava - 使用返回数组中的元素
【发布时间】:2012-07-09 18:06:45
【问题描述】:

get1() 方法返回一个数组。我确实得到了输出,但来自get1() 的值是[D@addbf1

我的问题是有什么方法可以直接使用返回的数组来获取inf1[0]inf1[1]中的值并在输出语句中显示出来?

我知道显示输出的其他方式。但是我想知道我是否可以直接检索返回数组的元素。

class vehicle{
   double [] inf1 = new double[2];
   void set(double d, double s) {
     inf1[0]=d;
     inf1[1]=s;
   }
   double[] get1() {
     return inf1;
   }
}

public class calc2 {
   public static void main(String args[]) {
     vehicle ob = new vehicle();
     ob.set(56.24, 75);
     System.out.println("The time taken to cover "+ob.get1());
   }
}

【问题讨论】:

  • @JigarJoshi 指向您的答案的方式,而不是该帖子重复的内容:)
  • 您得到 [D@addbf1 的输出,因为您正在打印参考。所以它打印的是方法返回的数组的引用,而不是你期望的元素。
  • @Jigar ...您的链接没有回答我的问题。但我学到了一些新东西。谢谢。

标签: java arrays


【解决方案1】:

我的问题是有什么方法可以直接使用返回的数组来获取inf1[0]和inf1[1]中的值并在输出语句中显示出来?

当然:

double[] result = obj.get1();
System.out.println("Result: " + result[0] + "," + result[1]);

或者:

System.out.println("Result: " + Arrays.toString(obj.get1());

[D@addbf1 只是在数组上调用 toString() 的结果。如果要获取数组中的值,通常只需使用数组索引表达式单独访问每个元素:array[index]

(不清楚您的问题是真的访问数组值,还是将数组转换为文本以供显示。)

【讨论】:

  • 我的问题是访问。谢谢,你的建议也对我有用。我很感激。
【解决方案2】:

是的,您可以通过get1() 方法引用数组的元素:

get1()[0] 可以工作。

【讨论】:

    【解决方案3】:

    您可以使用像 ArrayList 这样的集合类。

    声明 ArrayList<double> inf1 = new ArrayList<double>();

    在get1()中

    inf1.add(d);
    inf1.add(s);
    

    在 calc2 中, System.out.println("The time taken to cover "+ob.get1());

    【讨论】:

      【解决方案4】:

      试试

      System.out.println("The time taken to cover "+ob.get1()[0]);
      

      ob.get1() 将返回您的数组,因此您现在可以在其上使用[index]

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      • 2021-12-18
      • 1970-01-01
      • 2013-12-10
      • 2016-01-25
      相关资源
      最近更新 更多