gpt4 book ai didi

java - 集合 addAll 方法用于一组唯一值

转载 作者:行者123 更新时间:2023-12-01 19:06:18 27 4
gpt4 key购买 nike

我正在尝试查找字符串中唯一字符的数量。解决方案必须尽可能高效(时间复杂度 O(N);非常大的数组;一般来说是大 O)。我决定这样做(如果您有更好的解决方案请告诉我)。唯一的问题是,当我尝试运行它时,它总是说只有一个不同的值。 Collections.addAll 方法似乎有问题(也许我使用错误)。请让我知道如何解决它。看起来它只取数组中的第一个字符。谢谢。

    String ds = "acvdgefav";
char[] sa = ds.toCharArray();

for (int i=0; i<sa.length; i++)
System.out.println(sa[i]);
System.out.println();
System.out.println(sa.length);
System.out.println();

HashSet hs = new HashSet();
Collections.addAll(hs, sa);
for (int i=0; i<hs.size(); i++)
System.out.println(sa[i]);
System.out.println();
int z = hs.size();
System.out.println(z);

最佳答案

我建议您使用泛型,因为它会发现代码中的错误,就像使用调试器单步调试代码一样。

最有效的方法是使用 BitSet。这可能比使用 HashSet 快 10 倍,但时间复杂度相同。

关于java - 集合 addAll 方法用于一组唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9956778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com