填充数组

来源:互联网 发布:风暴大陆神兵进阶数据 编辑:程序博客网 时间:2024/04/29 11:29
Java 标准类库 Arrays 也有 fill()方法,但是它作用有限。只能用同一个值填充各个位置,
对于保存对象的数组,就是复制同一个引用进行填充。使用 Arrays2.toString()方法,很
容易证明这一点:


//: c11:FillingArrays.java
// Using Arrays.fill()
import com.bruceeckel.simpletest.*; 
import com.bruceeckel.util.*; 
import java.util.*; 


public class FillingArrays { 
private static Test monitor = new Test(); 
public static void main(String[] args) { 
int size = 6; 
// Or get the size from the command line:
if(args.length != 0) 
      size = Integer.parseInt(args[0]); 
boolean[] a1 = newboolean[size]; 
byte[] a2 = newbyte[size];
char[] a3 = newchar[size];
short[] a4 = new short[size]; 
int[] a5 = new int[size];
long[] a6 = newlong[size];
float[] a7 = new float[size]; 
double[] a8 = newdouble[size];
    String[] a9 = new String[size]; 
    Arrays.fill(a1, true);
    System.out.println("a1 = " + Arrays2.toString(a1));
    Arrays.fill(a2, (byte)11); 
    System.out.println("a2 = " + Arrays2.toString(a2));
    Arrays.fill(a3, 'x'); 
    System.out.println("a3 = " + Arrays2.toString(a3));
    Arrays.fill(a4, (short)17);
    System.out.println("a4 = " + Arrays2.toString(a4));
    Arrays.fill(a5, 19); 
    System.out.println("a5 = " + Arrays2.toString(a5));
    Arrays.fill(a6, 23); 
    System.out.println("a6 = " + Arrays2.toString(a6));
    Arrays.fill(a7, 29); 
    System.out.println("a7 = " + Arrays2.toString(a7));
    Arrays.fill(a8, 47); 
    System.out.println("a8 = " + Arrays2.toString(a8));
    Arrays.fill(a9, "Hello"); 
    System.out.println("a9 = " + Arrays.asList(a9)); 
// Manipulating ranges:
    Arrays.fill(a9, 3, 5, "World");
    System.out.println("a9 = " + Arrays.asList(a9)); 
    monitor.expect(new String[] { 
"a1 = [true, true, true, true, true, true]",
"a2 = [11, 11, 11, 11, 11, 11]",
"a3 = [x, x, x, x, x, x]",
"a4 = [17, 17, 17, 17, 17, 17]",
"a5 = [19, 19, 19, 19, 19, 19]",
"a6 = [23, 23, 23, 23, 23, 23]",
"a7 = [29.0, 29.0, 29.0, 29.0, 29.0, 29.0]",
"a8 = [47.0, 47.0, 47.0, 47.0, 47.0, 47.0]",
"a9 = [Hello, Hello, Hello, Hello, Hello, Hello]",
"a9 = [Hello, Hello, Hello, World, World, Hello]"
    });
  }
} ///:~
使用 Arrays.fill()可以填充整个数组,或者像最后两条语句所示,只填充数组的某个区域。
不过使用 Arrays.fill()你只能提供单个值用来填充,而使用 Arrays2.fill()则可以生成更多

有趣的结果。


原创粉丝点击