package lab02;
import java.util.*;
public class LabExample {
public static void main(String[] args) {
long start = System.nanoTime();
long stop = System.nanoTime();
System.out.printf("Execution time: %d \n\n", stop - start);
long seed = 232345;
Random rand = new Random(seed);
int randomInt = rand.nextInt(10);
double randomDouble = rand.nextDouble();
seed = Calendar.getInstance().getTimeInMillis();
rand = new Random(seed);
int randomInt2 = rand.nextInt(10);
double randomDouble2 = rand.nextDouble();
System.out.printf("%d %f | %d %f\n",
randomInt, randomDouble, randomInt2, randomDouble2);
List list = new LinkedList();
list.add(new Integer(10));
list.add(new Double(10.5));
list.add(new String("asdas"));
double listSum = sumListUntyped(list);
List<Integer> intList = new LinkedList<Integer>();
intList.add(new Integer(10));
intList.add(new Double(10.5));
intList.add(new Float(20.7));
double intListSum = sumListTyped(intList);
List<Double> dblList = new LinkedList<Double>();
dblList.add(new Integer(10));
dblList.add(new Double(10.5));
dblList.add(new Double(20.7));
double dblListSum = sumListTyped(dblList);
Integer maxIntList = maxListTyped(intList);
Double dblIntList = maxListTyped(dblList);
}
static double sumListUntyped(List list){
Iterator listIterator = list.iterator();
double sum = 0;
while( listIterator.hasNext() ){
sum += (Double)listIterator.next();
}
return sum;
}
static double sumListTyped(List<? extends Number> list){
Iterator<? extends Number> listIterator = list.iterator();
double sum = 0;
while( listIterator.hasNext() ){
sum += listIterator.next().doubleValue();
}
return sum;
}
static <N extends Number> N maxListTyped(List<N> list){
Iterator<N> listIterator = list.iterator();
N maxValue = listIterator.next();
while( listIterator.hasNext() ){
N curValue = listIterator.next();
if( curValue.doubleValue() > maxValue.doubleValue() )
maxValue = curValue;
}
return maxValue;
}
}
|