Java:为什么我的HashSet和TreeSet包含重复项?

时间:2016-03-11 00:23:01

标签: java unique hashset treeset

当我的文本文件包含:

a b c b

我的HashSet和TreeSet说有3个独特的单词。

当我的文本文件包含:

a b c a

我的HashSet和TreeSet说有4个独特的单词。

为什么?

  public static int countUnique1A(WordStream words) {

    HashSet<String> hashSetA = new HashSet<String>();
    for (String i : words) {
      hashSetA.add(i);
    }

    return hashSetA.size();
  }

  public static int countUnique1B(WordStream words) {

    TreeSet<String> treeSetA = new TreeSet<String>();
    for (String i : words) {
      treeSetA.add(i);
    }
    return treeSetA.size();
  }

1 个答案:

答案 0 :(得分:6)

我想这可能是因为单词之间的空格。例如。 HashSet可能包含“a”和“a”。你能尝试改变吗?

hashSetA.add(i);

hashSetA.add(i.trim());

我们也需要为treeSetA做同样的事情。