Поэтому мне нужно создать ArrayList, который будет только принимать кандидатов, которые в ...Итерация через ArrayList - ничего
- «класс» меньше, чем 85%,
- если «класс» меньше чем на 85%, проверить их «регулирование»
- , если их «регулирование»> = 0,5, проверить их «связь»
- , если их «связь» равно «средний» или «отлично»
Затем добавьте это в список
Я THUUHHT это то, что делал мой код, но его ничего не печатали. Поскольку он не придумывает никаких ошибок, это заставляет меня поверить, что это не так уж итеративно. Или его повторение по первому (что не соответствует критериям) и останавливается, поэтому ему нечего печатать. Ive посмотрел другие примеры и попытался реализовать и изменить несколько вещей, но он все еще не работает. Мне кажется, что он должен работать, поэтому я не могу понять, что менять.
Любые предложения были бы серьезно оценены!
import java.util.ArrayList;
public class Candidate extends AddressBook {
private boolean innovation;
private double grade;
private double regulation;
private String communication;
public Candidate(String fn, String ln, double grade, String comm,
boolean innov, double reg) {
super(fn, ln);
this.grade = grade;
this.communication = comm;
this.innovation = innov;
this.regulation = reg;
}
public boolean isInnovative() {
return innovation;
}
public double getGrade() {
return grade;
}
public double getRegulation() {
return regulation;
}
public String getCommunication() {
return communication;
}
public static ArrayList<Candidate> getEligibleCandidates(Candidate[] cands) {
ArrayList<Candidate> eligibleCandidates = new ArrayList<Candidate>();
Candidate person = cands[0];
for (Candidate i : cands) {
while (i.getGrade() < 85) {
if (i.getRegulation() >= 0.5) {
if (i.getCommunication().equals("average")
|| i.getCommunication().equals("excellent")) {
person = i;
eligibleCandidates.add(i);
}
}
}
}
return eligibleCandidates;
}
public void setCommunication(String comm) {
this.communication = comm;
}
public void setGrade(double grade) {
this.grade = grade;
}
public void setInnovation(boolean innov) {
this.innovation = innov;
}
public void setRegulation(double reg) {
this.regulation = reg;
}
public static void main(String[] args) {
Candidate r1 = new Candidate("Elena", "Brandon", 82.30, "poor", true,
0.5);
Candidate r2 = new Candidate("Thomas", "Molson", 85.10, "poor", false,
1.0);
Candidate r3 = new Candidate("Hamilton", "Winn", 77.77, "average",
false, 0.8);
Candidate r4 = new Candidate("Suzie", "Sarandin", 69.93, "average",
false, 0.0);
Candidate r5 = new Candidate("Philip", "Winne", 93.03, "average", true,
1.0);
Candidate r6 = new Candidate("Alex", "Trebok", 88.61, "poor", true, 0.7);
Candidate r7 = new Candidate("Emma", "Pivoto", 55.99, "excellent",
false, 0.8);
Candidate r8 = new Candidate("John", "Lenthen", 87.49, "excellent",
true, 0.9);
Candidate r9 = new Candidate("James", "Lean", 88.00, "excellent",
false, 0.5);
Candidate r10 = new Candidate("Jane", "Ostin", 91.20, "average", true,
0.6);
Candidate r11 = new Candidate("Emily", "Car", 66.79, "excellent",
false, 0.3);
Candidate r12 = new Candidate("Daniel", "", 76.65, "average", true, 0.2);
Candidate r13 = new Candidate("Neda", "Bazdar", 55.89, "excellent",
true, 0.5);
Candidate r14 = new Candidate("Aaron", "Smith", 90.01, "excellent",
false, 0.3);
Candidate r15 = new Candidate("Kate", "Hen", 87.9, "poor", false, 0.8);
Candidate[] cands = { r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11,
r12, r13, r14, r15 };
ArrayList<Candidate> people = Candidate.getEligibleCandidates(cands);
System.out.println(people);
}
}
Мое предложение было бы для отладки, чтобы посмотреть, что он делает для себя –
Почему вы имеете 'в то время как 'внутри вашего' for'? Если оценка меньше 85, это будет бесконечный цикл. – RealSkeptic