我正在尝试使用哈希集来计算字符串数组中的字符串数量,而不计算重复项。但是,此程序无法正常运行。例如。该代码打印出“4”,实际上它们只有3个唯一的字符串。有谁知道这为什么工作不正确?
String centers[]=new String[1000];
/* Only for Testing Purposes*/
centers[0] = "Soccer";
centers[1] = "Soccer";
centers[2]= "Baseball";
centers[3] = "Table Tennis";
centers[4] = "Soccer";
List<String> centerList = Arrays.asList(centers);
Set<String> uniqueCenters = new HashSet<String>();
uniqueCenters.addAll(centerList);
Integer numberOfUniqueStrings = uniqueCenters.size();
System.out.println(numberOfUniqueStrings);
最佳答案
只是一个猜测,但是centers
有1000个元素,而您只设置了5个。也许其他995个是null
,为您提供一个HashSet,其元素多于您的预期(null
)。
您可以通过打印内容轻松地对此进行测试:
for (String s : uniqueCenters) {
System.out.println("Got element: " + s);
}