gpt4 book ai didi

Java Set - Set.add() 和 Set.addAll() 哪个更快?

转载 作者:行者123 更新时间:2023-12-02 06:00:38 28 4
gpt4 key购买 nike

Set 维护唯一记录,并在尝试复制现有元素时更新现有记录。

考虑以下两种情况。您认为两者之间哪一个代码更快、更高效?

场景 1:使用 addAll()

Set<String> uniqueSet = new HashSet<String>();
uniqueSet = getSomedata(param1);
uniqueSet.addAll( getSomedata(param2) );

这里 getSomedata() 只是返回数据集合,该方法中没有特殊逻辑。

场景 2:使用 add()

Set<String> uniqueSet = new HashSet<String>();
getSomedata(param1, uniqueSet);
getSomedata(param2, uniqueSet );

这里getSomedata()如下

void getSomedata(String param, Set<String> uniqueSet){
while (someCollection.hasNext()){
uniqueSet.add( someCollection.get() );
}
}

最佳答案

addAll 基本上迭代其给定的集合,并在每个方法上调用 add 。 OpenJDK8 的实现方式如下:

public boolean addAll(Collection<? extends E> c) {
boolean modified = false;
for (E e : c)
if (add(e))
modified = true;
return modified;
}

但作为一般经验法则,除非您完全确定自己可以发明更好的轮子,否则您不应该尝试发明轮子。

关于Java Set - Set.add() 和 Set.addAll() 哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32799468/

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