CS 112 Lab 2

Agenda

We will review the following topics today,

  1. Putty and gsubmit
  2. Pseudorandom numbers
  3. Measuring execution time
  4. Generics in Java

    This webpage gives a very nice conceptual overview of generics

    http://www.onjava.com/pub/a/onjava/excerpt/javaian5_chap04/index1.html

Today's example

package test;
import java.util.Random;
import java.util.*;

public class Timer {

	public static void main(String[] args) {
		
		long start = System.nanoTime();
		
		long stop = System.nanoTime();
		
		System.out.println(stop - start);
		
		Random rand = new Random(232345);
		
		rand.nextInt();
		
		List list = new LinkedList();
		list.add(new Integer(0));
		list.add(new Double(0));
		list.add(new String("asdsad"));
		//System.out.println(sumList1(list)); 
		
		List<Integer> intList = new LinkedList<Integer>();
		intList.add(new Integer(10));
		intList.add(new Integer(20));
		intList.add(new Integer(30));
		System.out.println(sumList2(intList));
		
		List<Float> floatList = new LinkedList<Float>();
		floatList.add(new Float(10.123));
		floatList.add(new Float(20.123));
		
		List<String> stringList = new LinkedList<String>();
		stringList.add("abc");
		stringList.add("abd");
		stringList.add("acd");
	
		System.out.println(maxList(intList));
		System.out.println(maxList(stringList));
	
	}
	
	static Double sumList1(List list)
	{
		Iterator iter = list.listIterator();
		Double sum = new Double(0);
		while (iter.hasNext())
			sum += (Double)iter.next();

		return sum;
	}
	
	static Double sumList2(List < ? extends Number > list)
	{
		Iterator< ? extends Number > iter = list.listIterator();
		Double sum = new Double(0);
		while (iter.hasNext())
			sum = sum + iter.next().doubleValue();
		
		return sum;
	}
	
	static < N extends Comparable <N> > N maxList(List <N> list)
	{
		Iterator iter = list.listIterator();
		N maxVal = iter.next(); 
		while (iter.hasNext())
		{
			N curVal = iter.next(); 
			if( curVal.compareTo(maxVal) > 0 )
				maxVal = curVal;
		}
		return maxVal;
	}
}
      

URL

http://cs-people.bu.edu/tvashwin/cs112_spring08/lab02.html