我正在尝试使用哈希集来计算字符串数组中的字符串数量,而不计算重复项。但是,此程序无法正常运行。例如。该代码打印出“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);
}

09-08 09:09