有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    一艘班轮:

    Set<Character> uniqueChars = new HashSet<Character>(Arrays.asList(array));
    

    (该array必须是Character[]而不是char[]。否则,您必须将其转换为包装器数组)

    请注意,如果这是家庭作业,您将需要更具算法性的方法,以表明您了解自己在做什么。上述解决方案可能不适用。但它的工作原理如下:

    • 该数组被转换为List。这是O(1),因为数组只是支持新的、不可修改的列表。这样做是为了使数组能够符合List接口,这是HashSet构造函数所需要的
    • HashSet是由HashMap(哈希表)支持的集合。它计算键的散列,并将它们存储在一个内部数组中,索引=散列。因此,查找是O(1)
    • HashSet构造函数只需迭代传递的List并为每个项调用add(..)。相同的项目在集合中不允许出现两次(根据定义,集合不允许重复)。这是因为该项的散列将与现有的散列相同,因此新的散列将替换旧的散列。请注意,允许具有相同哈希的项,但不允许具有相同哈希的项(.equals(..)