如何创建、初始化匿名数组,初始化匿名数组
分享于 点击 5412 次 点评:217
如何创建、初始化匿名数组,初始化匿名数组
在Java中,匿名数组是一个没有名字的数组,就像匿名内部类一样。使用匿名数组的策略仅仅就是创建、初始化、应用,因为它没有任何名字因此你没法重用它。匿名数组在Java5可变参数出现之前是实现方法的可变参数的一种很好方式,使用匿名数组你可以任意地创建任何长度的数组传递给方法。一些典型的例子就是用在一些接收可变参数的聚合函数中如:sum()、avg()、min()、max()等等。在这篇教程中我们讲解一些如何创建匿名数组,如何初始化这些数组作为可变参数传递给方法。
如何创建数组
匿名数组与普通的数组的语法是一样的,如:`new [] { }`,不同的是创建完数组后不会存储在任何一个变量身上,这里是几个例子:
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()创建的时候与此同时在同一行初始化了它们。因为它没有名字,所以没法在其他任何方法再去初始化它们。
使用匿名数组最佳方式就是实现可变参数的方法中,它能够调用不同数量的参数,这些方法预期接收的是一个数组类型,当代码调用这个方法,它创建一个匿名的不同长度的数组然后传递给方法处理,这里是完整的例子:
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`,因为后者内部使用的就是匿名数组传递给可变参数列表。
原文链接: javarevisited 翻译: Wld5.com - 刘志军译文链接: http://www.wld5.com/6370.html
[ 转载请保留原文出处、译者和译文链接。]
用户点评