Java 一般来说,我应该在插入元素之前检查元素是否在集合中吗?

Java 一般来说,我应该在插入元素之前检查元素是否在集合中吗?,java,set,Java,Set,我目前正在使用Java,所以我更感兴趣的是,就效率而言,是否最好只插入它。不过我也很好奇这是否是一种不好的做法。没必要。API会告诉您它是否已经存在(如果您需要知道的话),并且集合代码非常高效—比自己费劲检查代码效率更高 仅供参考,以下是正在运行的API: Set<Integer> set = new HashSet<Integer>(); boolean newAdditionToSet = set.add(1); System.out.println(newAddi

我目前正在使用Java,所以我更感兴趣的是,就效率而言,是否最好只插入它。不过我也很好奇这是否是一种不好的做法。

没必要。API会告诉您它是否已经存在(如果您需要知道的话),并且集合代码非常高效—比自己费劲检查代码效率更高

仅供参考,以下是正在运行的API:

Set<Integer> set = new HashSet<Integer>();
boolean newAdditionToSet = set.add(1); 
System.out.println(newAdditionToSet); // true
newAdditionToSet = set.add(1); 
System.out.println(newAdditionToSet); // false
Set Set=newhashset();
布尔值newAdditionToSet=set.add(1);
System.out.println(newAdditionToSet);//符合事实的
newAdditionToSet=set.add(1);
System.out.println(newAdditionToSet);//错误的

这是一种“坏习惯”,因为剧组无论如何也会检查它。您只需将新元素的工作负载增加一倍,同时保留现有元素的工作负载。

无需。API会告诉您它是否已经存在(如果您需要知道的话),并且集合代码非常高效—比自己费劲检查代码效率更高

仅供参考,以下是正在运行的API:

Set<Integer> set = new HashSet<Integer>();
boolean newAdditionToSet = set.add(1); 
System.out.println(newAdditionToSet); // true
newAdditionToSet = set.add(1); 
System.out.println(newAdditionToSet); // false
Set Set=newhashset();
布尔值newAdditionToSet=set.add(1);
System.out.println(newAdditionToSet);//符合事实的
newAdditionToSet=set.add(1);
System.out.println(newAdditionToSet);//错误的
这是一种“坏习惯”,因为剧组无论如何也会检查它。您只需将新元素的工作负载增加一倍,同时保留现有元素的工作负载。

没有必要。Set.add()将为您检查

它还将根据是否添加元素返回true或false。

不需要。Set.add()将为您检查


它还将根据是否添加元素返回true或false。

一般来说,只插入元素更有效。对于正常的
Set
实现,插入代码与
contains
调用的工作几乎是重复的,因为它需要替换已经存在的值。因此,首先调用
contains
通常是浪费时间,而且通常是不好的做法

但并非总是如此


您应该调用
contains
的一种情况是,如果不想使用
add
调用替换集合中的现有值。这种情况确实偶尔出现;e、 g.如果使用集合规范化一组值。

一般来说,只插入元素更有效。对于正常的
Set
实现,插入代码与
contains
调用的工作几乎是重复的,因为它需要替换已经存在的值。因此,首先调用
contains
通常是浪费时间,而且通常是不好的做法

但并非总是如此


您应该调用
contains
的一种情况是,如果不想使用
add
调用替换集合中的现有值。这种情况确实偶尔出现;e、 g.如果您使用集合来规范化一组值。

它没有语义上的区别,也没有理由给性能带来任何好处,它是两行冗余代码。你认为呢?它没有语义上的区别,也没有理由给性能带来任何好处,它是两行冗余的代码。你怎么认为?