【发布时间】:2015-12-23 10:11:51
【问题描述】:
我必须操作大 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 的原因是为了避免重复条目(来自不同的来源)。
【问题讨论】:
-
你打算做什么操作?
-
“AB.12”和“AB”是两个不同的对象,要保留原来的对象吗?
-
我想将“AB”保留在我的集合中。
-
一种方法不是在原始
HashSet中存储String,而是像{AB.12, int fromIndex, int toIndex}这样的数据结构。 -
是否有特定的理由避免创建第二个哈希集?如果这只是一个内存问题,那么@KishoreReddy 的回答将解决这个问题。否则,对于非列表集合,无法在同一进程中同时插入和删除元素。
标签: java collections hashset