Java 在哈希集的ArrayList中重新创建哈希集

Java 在哈希集的ArrayList中重新创建哈希集,java,arraylist,hashset,Java,Arraylist,Hashset,我有密码 List<HashSet<Integer>> list = new ArrayList<HashSet<Integer>>(50); pos = 17; // just some index less than 50 list.add(pos, new HashSet<Integer>()); list.get(17).add(99); list.get(17).add(88); List List=newarraylist

我有密码

List<HashSet<Integer>> list = new ArrayList<HashSet<Integer>>(50);
pos = 17; // just some index less than 50
list.add(pos, new HashSet<Integer>());
list.get(17).add(99);
list.get(17).add(88);
List List=newarraylist(50);
位置=17;//只是一些指数低于50
添加(pos,newhashset());
列表。获取(17)。添加(99);
列表。获取(17)。添加(88);
过了一会儿,我想删除包含{99,88}的HashSet并创建一个新的HashSet,如下所示:

// pos is still here
list.add(pos, new HashSet<Integer>());
//pos还在这里
添加(pos,newhashset());
允许吗?你知道更快的解决方案吗?谢谢。

列表。添加(pos,newhashset())将转到
pos+1
。那似乎不是你想要的


如果要将集合替换为新集合,请使用
set

list.set(pos, new HashSet<Integer>()); 
list.set(pos,newhashset());
就性能而言,
ArrayList#set
以固定时间运行,因此它是替换列表中现有集合的有效方法。

list.add(pos,new HashSet())将转到
pos+1
。那似乎不是你想要的


如果要将集合替换为新集合,请使用
set

list.set(pos, new HashSet<Integer>()); 
list.set(pos,newhashset());

就性能而言,
ArrayList#set
以恒定时间运行,因此它是替换列表中现有集合的有效方法。

如果要替换集合的内容,可以这样做

Set<Integer> set = list.get(pos);
set.clear();
set.add(99); set.add(98);
Set=list.get(pos);
set.clear();
增加(99);增加(98);

这会稍微提高效率,因为它会重复使用集合。

如果要替换集合的内容,可以这样做

Set<Integer> set = list.get(pos);
set.clear();
set.add(99); set.add(98);
Set=list.get(pos);
set.clear();
增加(99);增加(98);

这会稍微提高效率,因为它会重复使用集合。

如果您使用番石榴,您可以更简洁地说:

List<Set<Integer>> list = Lists.newArrayListWithCapacity(50);
list.set(17, Sets.newHashSet(99, 88));    
List List=Lists.newArrayListWithCapacity(50);
list.set(17,set.newHashSet(99,88));

如果您使用番石榴,您可以更简洁地说:

List<Set<Integer>> list = Lists.newArrayListWithCapacity(50);
list.set(17, Sets.newHashSet(99, 88));    
List List=Lists.newArrayListWithCapacity(50);
list.set(17,set.newHashSet(99,88));

newArrayListWithCapacity
在我看来不是很简洁。没错,但是当你定义列表并对成员集进行更严格的初始化时,你失去了一半的泛型crud,所以总的来说,我认为这是一个很好的交易。
newArrayListWithCapacity
在我看来不是很简洁。没错,但当您定义列表并对成员集进行更严格的初始化时,您会丢失一半的泛型crud,所以我认为总的来说这是一个不错的选择。