Java 如何停止链表中的重复字符串?

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

我正在迭代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;
}
@覆盖
公共列表回归(){
//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。或者一个用来保存项目顺序的方法。