代码之家  ›  专栏  ›  技术社区  ›  guo

插入性能:在开始时使用HashSet,在开始时使用ArrayList,在结束时使用HashSet删除重复项

  •  1
  • guo  · 技术社区  · 6 年前

    哪个更快?我需要快速插入元素并删除重复项。

    List catNames = new ArrayList();
    for(Cat cat: cats){
    catNames.add(nameTheCat(cat));
    }
    new HashSet(catNames); // remove duplicates finally 
    

    HashSet catNames = new HashSet();
    for(Cat cat: cats){
    catNames.add(nameTheCat(cat));
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Eran    6 年前

    第一个片段(创建 List

    因此,使用第二个片段并将元素直接添加到 Set

    编辑:更改问题后,可以使用 Stream 学生:

    Set<String> catNames = cats.map(cat->nameTheCat(cat)).collect(Collectors.toSet());