gpt4 book ai didi

java - 替换 HashSet 内容而不创建新的 HashSet 对象

转载 作者:行者123 更新时间:2023-11-29 06:56:53 25 4
gpt4 key购买 nike

我必须操作存在于大 HashSet 对象下的字符串 我想知道是否有可能操纵现有的 不创建新 HashSet 对象的 HashSet 对象

以下是我当前的逻辑,其中,我想避免创建第二个 HashSet(set2 对象)。

HashSet<String> set1 = new HashSet<String>();
set1.add("AB.12");
set1.add("CD.34");
set1.add("EF.56");
set1.add("GH.78");

HashSet<String> set2 = new HashSet<String>();
for(String data : set1) {
set2.add(data.substring(0,2));
}

P.S.:选择 Set 的原因是为了避免重复条目(来自不同来源)。

最佳答案

不应更改 HashSet 中的元素以保持集合的完整性。您可以将它们视为不可变元素。

并且由于 HashSet 的顺序未定义或随时间保持不变,因此不可能在不与新元素发生冲突的情况下同时添加和删除元素。

但是,如果您想节省内存,您可以同时从 set1 中删除并添加到 set2。

Iterator iter = set1.iterator();

while(iter.hasNext()){
set2.add(iter.next().substring(0, 2));
iterator.remove();
}

关于java - 替换 HashSet 内容而不创建新的 HashSet 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784530/

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