A Vector is an object, so you can store it in another Vector. Or you can store an object that has a Vector as its instance variable in a Vector which is an instance variable of an object.
import java.util.*;
class Student {
private String name; // Student's name
private Vector marks = new Vector();
public Student (String n) {
name = n;
}
public void addMark (int i) {
marks.addElement (new Integer(i));
}
public String getName () {
return name;
}
public double getAverage() {
int sum = 0;
Enumeration e = marks.elements();
while (e.hasMoreElements()) {
sum += ((Integer)e.nextElement()).intValue();
}
return (double)sum/marks.size();
}
}
class Course {
private String name; // Course's name
private Vector students = new Vector();
public Course (String n) {
name = n;
}
public void addStudent (Student s) {
students.addElement(s);
}
public String getName () {
return name;
}
public void printMarks() {
Enumeration e = students.elements();
while (e.hasMoreElements()) {
Student s = (Student)e.nextElement();
System.out.println (s.getName() + " " + s.getAverage());
}
}
}
class School {
public static void main (String[] args) {
Student lia = new Student ("Lia");
Student sam = new Student ("Sam");
lia.addMark (87);
lia.addMark (93);
sam.addMark (60);
sam.addMark (75);
Student ann = new Student ("Ann");
Student jim = new Student ("Jim");
ann.addMark (70);
ann.addMark (65);
jim.addMark (85);
jim.addMark (91);
Course csc108 = new Course ("CSC108");
csc108.addStudent (lia);
csc108.addStudent (sam);
Course csc148 = new Course ("CSC148");
csc148.addStudent (ann);
csc148.addStudent (jim);
System.out.println ("CSC108 Marks:");
csc108.printMarks();
System.out.println ("\nCSC148 Marks:");
csc148.printMarks();
}
}
We have a Vector of Students, with each Student containing a Vector of marks. Of course, the nested Vector of marks is "shielded" from the containing Vector by being a member of a protective Student class, but that's not necessary. You can just put a Vector into an element of another Vector if it seems appropriate.
CSC108 Marks: Lia 90.0 Sam 67.5 CSC148 Marks: Ann 67.5 Jim 88.0