我正在迭代一个LinkedList,但无法弄清楚如何只迭代每个唯一的字符串。我正在考虑使用ForEach循环迭代每个唯一的字符串,但不确定它是否可行或如何操作。谢谢!
@Override
public List<String> listRegressions() {
// TODO Implement this, ideally in better than O(n^2)
LinkedList<String> regressionUnikey = new LinkedList<String>();
for (int i = 0; i < getListSize(); i++) {
Integer bestGrade = getBestGrade(students.get(i).getUnikey());
Integer recentGrade = getSubmissionFinal(students.get(i).getUnikey()).getGrade();
if (recentGrade < bestGrade) {
regressionUnikey.add(students.get(i).getUnikey());
}
}
return regressionUnikey;
}
一个测试用例结果
java.lang.AssertionError: expected:<[b, c, f]> but was:<[b, b, c, c, f, f]>
答案 0 :(得分:1)
为什么你甚至使用LinkedList
?无论如何我都没有理由要求输出。
Set<String> regressionUnikey = new HashSet<String>();
for (int i = 0; i < getListSize(); i++) {
String key = students.get(i).getUnikey();
Integer bestGrade = getBestGrade(key);
Integer recentGrade = getSubmissionFinal(key).getGrade();
if (recentGrade < bestGrade) {
regressionUnikey.add(key);
}
}
简单地使用HashSet
。它将确保唯一性。