Я изучаю использование наборов. Мой вопрос: наборы не содержат дубликатов. Когда мы пытаемся вставить дубликаты, это не вызывает никакой ошибки и автоматически удаляет дубликаты. Является ли хорошей практикой проверять каждое значение перед вставкой в набор, существует ли он или нет? Или это нормально делать что-то вроде приведенного ниже кода? Я думаю, что Java будет делать внутреннюю проверку, используя .contains(value)
. Как вы думаете?
Какова была бы сложность Big O в обоих случаях, учитывая, что в набор входит n элементов?
import java.util.HashSet;
import java.util.Set;
public class DuplicateTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Set<Integer> mySet = new HashSet<Integer>();
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);
}
}