Это зависит от того, нужно ли искать структуру данных на основе ключа или ключа и значения.
Если вы будете искать в одиночку ключа (т.е. map.containsKey(key)
), вы должны использовать HashMap
.
Если вы ищете существование пары ключ-значение (т. Е. set.contains(new Pair(key,value)
), вы должны использовать HashSet
, который содержит эти пары.
Еще одна вещь, которую следует учитывать, - определить, как вы определяете уникальность элементов. Если он определяется только одним ключом, вы должны использовать HashMap
. Если он определяется как ключом, так и значением (т. Е. Вы можете иметь один и тот же ключ дважды с разными значениями), вы должны использовать HashSet
, так как HashhMap
не позволяет один и тот же ключ появляться более одного раза.
Ответ на вопрос «какая структура данных я должен использовать» всегда «зависит от того, что вам нужно с ней делать». Можете ли вы рассказать о своих потребностях? – Mureinik
Пожалуйста, обратитесь к этому руководству, надейтесь, что это поможет вам лучше. http://www.java2novice.com/java-collections-and-util/ –
Оба подхода имеют свои применения, и это может зависеть от того, является ли ключ концептуально «частью» значения (HashSet) или независимым от него (HashMap). –