【发布时间】:2016-03-11 00:23:00
【问题描述】:
当我的文本文件包含以下内容时:
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();
}
【问题讨论】:
-
在调用
size()之前,treeSetA和hashSetA中有什么内容?你如何构造WordStream& 什么是WordStream? -
它不包含重复项。它不能。弦不一样。尝试打印出集合中的所有内容,您会看到。如果将输出括在括号中,它将清楚地显示字符串的开始和结束位置,例如
System.out.println(String.format("[%s]", word)); -
错误在
WordStream,而不是您在此处显示的代码。删除此代码,并将您的问题重新集中在WordStream。
标签: java unique hashset treeset