Java 如何停止链表中的重复字符串?
我正在迭代LinkedList,但不知道如何只迭代每个唯一的字符串。我曾考虑使用ForEach循环对每个唯一的字符串进行迭代,但不确定这是否可能或如何实现。谢谢Java 如何停止链表中的重复字符串?,java,linked-list,Java,Linked List,我正在迭代LinkedList,但不知道如何只迭代每个唯一的字符串。我曾考虑使用ForEach循环对每个唯一的字符串进行迭代,但不确定这是否可能或如何实现。谢谢 @Override public List<String> listRegressions() { // TODO Implement this, ideally in better than O(n^2) LinkedList<String> regressionUnikey = new Li
@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;
}
@覆盖
公共列表回归(){
//TODO实现此功能,理想情况下使用优于O(n^2)
LinkedList regressionUnikey=新LinkedList();
对于(int i=0;i
一个测试用例结果
java.lang.AssertionError: expected:<[b, c, f]> but was:<[b, b, c, c, f, f]>
java.lang.AssertionError:应为:但为:
你为什么还要使用链接列表?我看不出有任何理由要求对输出进行排序
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);
}
}
Set regressionUnikey=new HashSet();
对于(int i=0;i
简单地使用HashSet
。它将确保唯一性。为什么不使用集合?您确实需要列表吗?将列表转换为集合并在集合上迭代。使用LinkedList的具体原因是什么?LinkedHashSet regressionUnikey=new LinkedHashSet();没有具体的原因,我也不熟悉LinkedHashSet。或者一个用来保存项目顺序的方法。