﻿# V6033\. An item with the same key has already been added\.

Анализатор обнаружил подозрительную ситуацию, когда в словарь \(контейнеры типа 'map' и т\.п\.\) или в множество \(контейнеры типа 'set' и т\.п\.\) добавляются элементы с ключами, уже присутствующими в этих контейнерах\. В результате добавление нового элемента будет проигнорировано\. Это может свидетельствовать об опечатке и привести к неверному заполнению контейнера\.

Рассмотрим пример со словарём:

```cpp
Map<String, Integer> map = new HashMap<String, Integer>() {{
  put("a", 10);
  put("b", 20);
  put("a", 30); // <=
}};
```

В последней строке инициализации была допущена ошибка, так как ключ 'a' уже содержится в словаре\. В результате данный словарь будет содержать 2 значения\.

Исправить ошибку можно, использовав правильное значение ключа:

```cpp
Map<String, Integer> map = new HashMap<String, Integer>() {{
  put("a", 10);
  put("b", 20);
  put("c", 30); 
}};
```

Схожую ошибку можно допустить и при инициализации множества:

```cpp
HashSet<String> someSet = new HashSet<String>(){{
  add("First");
  add("Second");
  add("Third");
  add("First"); // <=
  add("Fifth");
}};
```

Из\-за ошибки вместо ключа 'Fourth' в множество 'someSet' пытаются записать строку 'First', но так как такой ключ уже содержится в множестве, он будет проигнорирован\. 

Для исправления ошибки необходимо исправить список инициализации:

```cpp
HashSet<String> someSet = new HashSet<String>(){{
  add("First");
  add("Second");
  add("Third");
  add("Fourth");
  add("Fifth");
}};
```