gpt4 book ai didi

java - 增加循环中创建的对象的频率

转载 作者:行者123 更新时间:2023-12-02 04:33:48 25 4
gpt4 key购买 nike

我正在尝试使用通过解析文件生成的一些字符串来创建对象每次字符串再次出现在文件中时,我都需要增加对象的频率

for (int i = 0; i < chars.length - (k-1); i++) {                        
String s = "";
for(int j = i; j < i + k; j ++ ){
s += chars[j];
}
if(!s.contains("N")){
TreeObject obj = new TreeObject(s, 4);
if(lines.contains(s)){
obj.incrementFrequency();
System.out.println("duplicate detected " + s + "\n");
}
else {
lines.add(s);
}

其中行是一个集合

Set<String> lines = new TreeSet<>();

我想不出一种方法来做到这一点..由于数据可能很大,我认为使用数组不是一个好方法......

有什么想法吗?

最佳答案

使用 Map :

Map<String, Integer> frequencies = new HashMap<>();

然后每次解析得到一个新的字符串s:

frequencies.put(s, frequencies.getOrDefault(s, 0) + 1);

这会检查 frequencies 中是否已存在带有键 s 的条目,如果存在,则将其值加 1。否则,它只是将带有键 s 和值 1 的新条目放入 frequencies 中。

如果您无法访问 Java 8,解决方案就不那么优雅:

Integer previous = frequencies.get(s);
frequencies.put(s, previous == null ? 1 : previous + 1);

关于java - 增加循环中创建的对象的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31090052/

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