CECS 277
LAB ASSIGNMENT #6

Assigned date: 11/5
Due date: 11/12

15 points

1. [5 points] Turn the HashSet implementation of chapter 16 into a generic class. Use an array list instead of an array to store the buckets.
Here is the links to th files HashSet.java and HashSetDemo.java in the chapter 16.

2. [5 points] Given the main method below and its output:

public class TwoThreadsDemo {
public static void main (String[] args) {
new SimpleThread("CECS 277").start();
new SimpleThread("OOP in Java").start();
}
}

Output

0 OOP in Java
0 CECS 277
1 OOP in Java
2 OOP in Java
1 CECS 277
3 OOP in Java
4 OOP in Java
2 CECS 277
5 OOP in Java
3 CECS 277
4 CECS 277
5 CECS 277
6 OOP in Java
6 CECS 277
7 OOP in Java
7 CECS 277
8 CECS 277
8 OOP in Java
9 CECS 277
DONE! CECS 277
9 OOP in Java
DONE! OOP in Java

Implement the class SimpleThread.

3. [5 points] Here is a runnable task, called TaskThread. This task performs some work and then periodically reports what percent of the work it has completed:

import java.util.*;
public class TaskThread implements Runnable {
private int taskNumber;

TaskThread(int number) {
taskNumber = number;
}
public void run() {
for (int i=0;i<=100;i+=20) {
// Perform some task ...
System.out.println("Task number: " + taskNumber
+ ", percent complete: " + i );
try {
Thread.sleep((int)(Math.random() * 1000));
}
catch (InterruptedException e)
{
}
}//end for
}//end main
}//end class

You're allow to have two threads. Write a main method to produce the following ouput:

Task number: 1, percent complete: 0
Task number: 0, percent complete: 0
Task number: 1, percent complete: 20
Task number: 0, percent complete: 20
Task number: 1, percent complete: 40
Task number: 1, percent complete: 60
Task number: 0, percent complete: 40
Task number: 0, percent complete: 60
Task number: 1, percent complete: 80
Task number: 1, percent complete: 100
Task number: 0, percent complete: 80
Task number: 2, percent complete: 0
Task number: 2, percent complete: 20
Task number: 0, percent complete: 100
Task number: 2, percent complete: 40
Task number: 3, percent complete: 0
Task number: 3, percent complete: 20
Task number: 3, percent complete: 40
Task number: 2, percent complete: 60
Task number: 3, percent complete: 60
Task number: 3, percent complete: 80
Task number: 2, percent complete: 80
Task number: 2, percent complete: 100
Task number: 3, percent complete: 100

GRADING