//:DoubleGenerator.java
package com.caihualin.util;
public interface DoubleGenerator{
double next();
}///:~
//:Array2.java
package com.caihualin.util;
import java.util.*;
public class Array2{
private static void start(int from,int to,int length){
if (from!=0||to!=length)
System.out.print("["+from+":"+to+"]");
System.out.print("(");
}
private static void end(){
System.out.println(")");
}
public static void print(double[] a){
print(a,0,a.length);
}
public static void print(String msg,double[] a){
System.out.print(msg+" ");
print(a,0,a.length);
}
public static void print(double[] a,int from,int to){
start(from,to,a.length);
for (int i=from;i<to;i++){
System.out.print(a[i]);
if (i<to-1)
System.out.print(",");
}
end();
}
public static void fill(double[] a,DoubleGenerator gen){
fill(a,0,a.length,gen);
}
public static void fill(double[] a,int from,int to,DoubleGenerator gen){
for (int i=from;i<to;i++)
a[i]=gen.next();
}
private static Random r=new Random();
public static class RandDoubleGenerator implements DoubleGenerator{
public double next(){
return r.nextDouble();
}
}
}
//:TestArray2.java
import com.caihualin.util.*;
public class TestArray2{
public static void main(String[] args){
int size=6;
if (args.length!=0)
size=Integer.parseInt(args[0]);
double[] a1=new double[size];
Array2.fill(a1,new Array2.RandDoubleGenerator());
Array2.print(a1);
Array2.print("a1=",a1);
Array2.print(a1,size/3,size/3+size/3);
}
}