gpt4 book ai didi

java - 我应该如何迭代 HashSet、删除某些元素并更改其他元素?

转载 作者:行者123 更新时间:2023-12-01 18:09:51 30 4
gpt4 key购买 nike

我有以下方法,该方法传递了 HashSet<String>来自 IMDB 评论的词语。

private static void reduceVocab(HashSet<String> vocab) {
for (Iterator<String> i = vocab.iterator(); i.hasNext();) {
String element = i.next();
element = element.replaceAll("[^a-zA-Z0-9]", ""); // Need to replace this
if (element.length() <= 3) {
i.remove();
}
}
}

我想执行一些操作来减小 HashSet 的大小通过删除 String太短并删除非字母数字字符。有什么方法可以执行我想做的事情 element.replaceAll()

最佳答案

在迭代 HashSet 时无法添加内容。这使得你想做的事情有点尴尬。线路

element = element.replaceAll("[^a-zA-Z0-9]", "");

给出一个新字符串,但新字符串不会在集合中。

你可以这样做:

private static void reduceVocab(HashSet<String> vocab) {
Set<String> copy = new HashSet<>();
for (String str : vocab) {
str = str.replaceAll("[^a-zA-Z0-9]", "");
if (str.length() > 3)
copy.add(str);
}
vocab.clear();
vocab.addAll(copy);
}

关于java - 我应该如何迭代 HashSet、删除某些元素并更改其他元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33860522/

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