2012-07-30 35 views
0

因此,我试图找到一种方法来将一个列表或某些东西('列表'不是'列表'的实际Java定义,而不是白话用法)放入数字中数组。它会这样:尝试将多个数字传入数组

Land FlintsFinger = new Land(0,0,1,0,9, 1 2 3); 

随着后面的数字,然后进入数组在土地(忽略其他数字)。

是否有任何语法可以在飞行中执行此操作?我知道在Python中有元组,但Java中是否有这样的东西?

谢谢!

+0

我不明白“与后者的数字,然后进入Land中的数组(忽略其他数字)“。逗号分隔符的存在或不存在意味着什么?你想要什么输出?你真的在问可变长度参数列表吗? ... – 2012-07-30 18:35:51

+0

对不起,我没有完全清楚。所以最后三位数字在那里,因为我不知道如何处理它们。真正的原始代码只有前五位数字 - 我不知道该把最后三位数字放在里面或左右以便让它们被Land中的数组拾取,所以我排除了逗号。目前它没有用处。 – EML 2012-07-30 18:41:25

+0

[在Java中使用元组]的可能重复(http://stackoverflow.com/questions/2670982/using-tuples-in-java) – Mez 2012-07-31 14:45:44

回答

2

你的意思是这样的:

public class Land { 

    private final int[] values; 

    public Land(int... values) { 
     this.values = values; 
    } 
} 

或者,如果前五个参数的意思是别的东西:

public Land(int a, int b, int c, int d, int e, int... values) { 
    this.values = values; 
} 

然后称其为:

new Land(0,0,1,0,9, 1, 2, 3); 

编译器会将最后的三个值为你的数组。虽然没有使用空格的文字形式。

0

你可以改变你的构造采取int数组

int [] params = new int{1,2,3}; 
Land FlintsFinger = new Land(0,0,1,0,9, params); 
1

你可以做这样的事情:

Land FlintsFinger = new Land(0,0,1,0,9, new int[]{1, 2, 3}); 

或者您可以将构造函数更改为:

public Land(int fst, int scn, int thr, int frth, int ffth, int... vals){} 

,并把它

Land FlintsFinger = new Land(0,0,1,0,9,1,2,3); 

(你的构造可以缩短为public Land(int... vals),如果您输入的所有整数都是原始值的)