2012-07-09 21 views
1

get1()方法返回一个数组。我得到的输出,但是从get1()[[email protected]java - 使用返回数组中的元素

我的问题是有没有办法直接使用返回的数组,以获得值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()); 
    } 
} 
+1

类似:http://stackoverflow.com/questions/11399950/why-do-i -get-garbage-values-when-print-arrays-in-java/11399956#11399956 – 2012-07-09 18:09:27

+0

可能的重复[在Java中打印数组的最简单方法](http://stackoverflow.com/questions/409784/simplest-way -to-打印的阵列式的Java ) – assylias 2012-07-09 18:10:29

+0

@JigarJoshi指向你的答案,而不是那个帖子重复的东西:) – 2012-07-09 18:10:46

回答

1

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

get1()[0]将工作。

6

我的问题是有没有办法直接使用返回数组得到INF1 [0]和INF1 [1]的值,并显示在输出语句?

肯定的:

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

或者:

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

[[email protected]只是阵列上调用toString()的结果。如果你想在一个阵列内的值,你通常只访问每个元素单独使用数组索引表达式:array[index]

(目前尚不清楚你的问题是否真正关心访问数组值,或者转换的阵列成文本用于显示目的)

+0

我的问题是访问。谢谢,你的建议也适用于我。我很感激。 – user547453 2012-07-09 18:20:57

1

尝试

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

ob.get1()将返回你的阵列,所以你现在可以使用它[index]

+0

完美!这工作。 – user547453 2012-07-09 18:13:10

+1

@ user547453很高兴我可以帮忙,但也请阅读[Jon Skeet给出的答案](http://stackoverflow.com/a/11400660/1393766)。它包含一些有用的信息。 – Pshemo 2012-07-09 18:16:22

+0

感谢您的回答 – user547453 2012-07-09 18:39:52

1

您可以使用像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());

+0

感谢您的回答 – user547453 2012-07-09 18:39:41