哪个应该更快?我需要快速插入元素,并删除重复项。
代码示例:
List catNames = new ArrayList();
for(Cat cat: cats){
catNames.add(nameTheCat(cat));
}
new HashSet(catNames); // remove duplicates finally
vs
HashSet catNames = new HashSet();
for(Cat cat: cats){
catNames.add(nameTheCat(cat));
}
答案 0 :(得分:1)
如果重复很多,第一个代码段(首先创建List
可能会很浪费(在内存和时间上),因为稍后将要消除重复。
因此,使用第二个片段并将元素直接添加到Set
更为有意义。
编辑:更改问题后,您可以使用Stream
s来缩短代码:
Set<String> catNames = cats.map(cat->nameTheCat(cat)).collect(Collectors.toSet());