0

有没有办法使用数组而不实际将其分配给变量?例如

for (int numb: {1,2,3,4,5,6}){
    System.out.println(number);
}

或者

public class TestArrays{
   public static void doStuff(double[] doubles){
       //doStuff
   }
   public static void main(String[] args){
       doStuff({1,2,3,4,5,6,7});
   }
}

因为当我现在尝试它时,我遇到编译问题,就好像编译器没有将实体识别为数组一样。

4

4 回答 4

5

是的,像这样:

for (int number : new int[]{1, 2, 3, 4, 5, 6}) {
    System.out.println(number);
}

或者

doStuff(new double[]{1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0});
于 2013-09-02T15:15:11.857 回答
2

考虑改为使用可变参数来传递可变数量的参数

public static void doStuff(double... doubles){
       //doStuff
}

并打电话

doStuff(1,2,3,4,5,6,7);

您可以使用Arrays.asListforfor循环的可变参数

for (int number: Arrays.asList(1,2,3,4,5,6)) {
   System.out.println(number);
}
于 2013-09-02T15:25:27.917 回答
1

只是为了完整起见,此属性不仅限于原始数组。因为在 Java 中,数组也是对象,所以您可以对任何对象执行此操作。

doStuff(new String("Dave"));
doStuff(new Car("Ford"));

这被称为匿名对象,并且不时会生成一些不错的代码,尽管滥用往往会导致代码非常不可读。明智地使用!

于 2013-09-02T15:17:02.627 回答
0

尝试

new int[] {1,2,3,4,5,6,7}

而不仅仅是

{1,2,3,4,5,6,7}
于 2013-09-02T15:19:35.530 回答