如何在链接列表中停止重复的字符串?

时间:2017-09-20 14:19:55

标签: java linked-list

我正在迭代一个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]>

1 个答案:

答案 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。它将确保唯一性。