使用Hashsets计算没有重复项的数组中的字符串数量

use*_*775 4 java string hashset

我试图使用一个哈希集来计算字符串数组中的字符串数量而不计算重复项.但是,此程序无法正常工作.例如.这段代码打印出"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);
Run Code Online (Sandbox Code Playgroud)

Rei*_*ica 6

只是一个猜测,但centers有1000个元素,你只设置了5个.也许其他995 null,给你一个HashSet,其中一个元素比你期望的多一个(null).

您可以通过打印内容轻松测试:

for (String s : uniqueCenters) {
    System.out.println("Got element: " + s);
}
Run Code Online (Sandbox Code Playgroud)