当前位置:  开发笔记 > 编程语言 > 正文

您是否应该在插入集合之前检查重复项

如何解决《您是否应该在插入集合之前检查重复项》经验,为你挑选了2个好方法。

我正在学习使用套装.我的问题是:集合不包含重复项.当我们尝试插入重复项时,它不会抛出任何错误并自动删除重复项.在插入集合之前检查每个值是否存在是否是一个好习惯?或者可以执行类似下面的代码?我认为Java会在内部进行检查.contains(value).你怎么看?

考虑到有n个元素进入集合,两种情况下的Big O复杂度是多少?

import java.util.HashSet;
import java.util.Set;

public class DuplicateTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
         Set mySet = new HashSet();

         mySet.add(10);
         mySet.add(20);
         mySet.add(30);
         mySet.add(40);
         mySet.add(50);
         mySet.add(50);
         mySet.add(50);
         mySet.add(50);
         mySet.add(50);
         mySet.add(50);

         System.out.println("Contents of the Hash Set :"+mySet);
    }

}

Atri.. 25

根据文档:

public boolean add(E e)

如果指定的元素尚不存在,则将其添加到此集合中.更正式地,如果此集合不包含元素e2(e == null?e2 == null:e.equals(e2)),则将指定元素e添加到此集合.如果此set已包含该元素,则调用将保持set不变并返回false.

所以该add()方法已经返回true或false.所以你不需要做额外的检查.



1> Atri..:

根据文档:

public boolean add(E e)

如果指定的元素尚不存在,则将其添加到此集合中.更正式地,如果此集合不包含元素e2(e == null?e2 == null:e.equals(e2)),则将指定元素e添加到此集合.如果此set已包含该元素,则调用将保持set不变并返回false.

所以该add()方法已经返回true或false.所以你不需要做额外的检查.



2> 小智..:

与API的文档进行比较Set.add(E)

add方法检查元素是否已经存在Set.如果元素已经存在,则不添加新元素,并Set保持不变.在大多数情况下,您无需检查任何内容.

该方法的复杂性取决于您正在使用的Set的具体实现.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有