gpt4 book ai didi

java - 删除重复项的好程序

转载 作者:行者123 更新时间:2023-12-01 23:03:19 24 4
gpt4 key购买 nike

我有一个巨大的字符串(1GB),带有空格分隔符,我将其转换为数组[]。我的字符串包含很多重复项。我必须对字符串进行排序并删除重复项。我已经制定了 2 个程序,但无法在这两个程序中决定一个。

程序 1

我认为对字符串进行排序是一个成本高昂的过程,我想使用 HashSet 删除重复项,然后进行排序。

程序 2

我使用将排序数组与其前一个值与下一个值进行比较的正式程序对数组进行排序并删除重复项,并删除重复项。

从我的角度来看,第一个程序似乎不错。但我不知道是否遇到任何错误。哪一个会好..?

最佳答案

假设内存不是问题,从性能角度来看,最有效的方法可能是:

String s = someOneGbString();
String[] words = s.split("\\s+");
Set<String> noDupes = new HashSet<>();
Collections.addAll(noDupes, words);

如果您需要对其进行排序:

Set<String> sorted = new TreeSet<> (noDupes);

或者使用 Java 8:

Set<String> sorted = Arrays.stream(s.split("\\s+"))
.sorted()
.collect(toSet());

关于java - 删除重复项的好程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23185933/

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