// Code for CS1Ah Note 19: Supporting Queries. // November 2002. // Barebones StudentCollection class, similar to ClassOfStudents examples // from Using Arrays lecture. public class StudentCollection { private static final int N = 1000; private Student[] members; private int number; public StudentCollection() { members = new Student[N]; number = 0; } public boolean insert(Student newStudent) { if (number == N) return false; else { members[number] = newStudent; number++; return true; } } public String toString() { String res = new String(); for (int i = 0; i < number; i++) { res = res + i + "." + members[i] + "\n"; } return res; } public StudentCollection select1() { StudentCollection res = new StudentCollection(); for (int i = 0; i < number; i++) { if (members[i].property1()) { res.insert(members[i]); } } return res; } public StudentCollection select2(String basicProperty) { StudentCollection res = new StudentCollection(); for (int i = 0; i < number; i++) { if (members[i].hasBasicProperty(basicProperty)) { res.insert(members[i]); } } return res; } public StudentCollection select3(String[] conjunctiveProperty) { StudentCollection res = new StudentCollection(); for (int i = 0; i < number; i++) { if (members[i].hasConjunctiveProperty(conjunctiveProperty)) { res.insert(members[i]); } } return res; } public StudentCollection select4(String[][] dnfProperty) { StudentCollection res = new StudentCollection(); for (int i = 0; i < number; i++) { if (members[i].hasDnfProperty(dnfProperty)) { res.insert(members[i]); } } return res; } }