如何创建,初始化匿名数组

 我来答
依兰彬歌
推荐于2016-02-21 · TA获得超过914个赞
知道小有建树答主
回答量:940
采纳率:0%
帮助的人:1309万
展开全部
在Java中,匿名数组是一个没有名字的数组,就像匿名内部类一样。使用匿名数组的策略仅仅就是创建、初始化、应用,因为它没有任何名字因此你没法重用它。匿名数组在Java5可变参数出现之前是实现方法的可变参数的一种很好方式,使用匿名数组你可以任意地创建任何长度的数组传递给方法。一些典型的例子就是用在一些接收可变参数的聚合函数中如:sum()、avg()、min()、max()等等。在这篇教程中我们讲解一些如何创建匿名数组,如何初始化这些数组作为可变参数传递给方法。
如何创建数组
匿名数组与普通的数组的语法是一样的,如:`new [] { }`,不同的是创建完数组后不会存储在任何一个变量身上,这里是几个例子:

1
2
3

anonymous int array : new int[] { 1, 2, 3, 4};
anonymous String array : new String[] {"one", "two", "three"};
anonymous char array : new char[] {'a', 'b', 'c');

正如你见到的一样,创建和初始化匿名数组在同一时间内完成。当你使用new()创建的时候与此同时在同一行初始化了它们。因为它没有名字,所以没法在其他任何方法再去初始化它们。
使用匿名数组最佳方式就是实现可变参数的方法中,它能够调用不同数量的参数,这些方法预期接收的是一个数组类型,当代码调用这个方法,它创建一个匿名的不同长度的数组然后传递给方法处理,这里是完整的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

public class AnnonymousArrayExample {

public static void main(String[] args) {

//calling method with anonymous array argument
System.out.println("first total of numbers: " + sum(new int[]{ 1, 2,3,4}));
System.out.println("second total of numbers: " + sum(new int[]{ 1, 2,3,4,5,6,}));

}

//method which takes an array as argument
public static int sum(int[] numbers){
int total = 0;
for(int i: numbers){
total = total + i;
}
return total;
}
}

同样的方法sum()可以通过java1.5引入的新特性可变参数 `public static int sum(int… numbers)`来实现,但是你不可以在一个类中同时有`sum(int[] numbers)`方法和 `sum(int… numbers)`,如果那样的话,会报 `throw compilation error`,因为后者内部使用的就是匿名数组传递给可变参数列表。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式