Hi,
Hope this could help you in your report generation.
import java.util.Vector;
import java.util.Hashtable;
import java.util.Enumeration;
public class TestDup {
public static void main(String ars[]) {
// designations
Vector designation = new Vector();
designation.addElement("Manager"

;
designation.addElement("Manager"

;
designation.addElement("Clerk"

;
designation.addElement("Programmer"

;
designation.addElement("Programmer"

;
designation.addElement("Clerk"

;
designation.addElement("Programmer1"

;
designation.addElement("Programmer1"

;
// employee names
Vector empNames = new Vector();
empNames.addElement("Joe Smith"

;
empNames.addElement("John Smile"

;
empNames.addElement("John Raj"

;
empNames.addElement("Raj Kumar"

;
empNames.addElement("Raj Kumar2"

;
empNames.addElement("Vijay"

;
empNames.addElement("Raj Kumar3"

;
empNames.addElement("Raj Kumar4"

;
// contains Designations and names of the employees
Hashtable desigNames = new Hashtable();
for (int i = 0; i < designation.size(); i++) {
String orgVal = designation.get(i).toString();
Vector vector = null;
if (desigNames.containsKey(orgVal)) {
vector = (Vector) desigNames.get(orgVal);
vector.addElement(empNames.get(i));
} else {
vector = new Vector();
vector.addElement(empNames.get(i));
desigNames.put(orgVal, vector);
}
}
Enumeration enumeration = desigNames.keys();
while (enumeration.hasMoreElements()) {
String key = enumeration.nextElement().toString();
System.out.println("Designation" + key);
Vector names = (Vector) desigNames.get(key);
System.out.println("Emp Name " + names);
}
}
}
The output would be like this
Designation |Programmer1|
Emp Names |[Raj Kumar3, Raj Kumar4]|
Designation |Manager|
Emp Names |[Joe Smith, John Smile]|
Designation |Clerk|
Emp Names |[John Raj, Vijay]|
Designation |Programmer|
Emp Names |[Raj Kumar, Raj Kumar2]|
Let me know.
Cheers
venu