我必须操作存在于大 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/