Когда/где будет использовать (хэшсет + список) над LinkedHashset для уникальной и упорядоченной коллекции объектов?JAVA

Программисты JAVA общаются здесь
Anonymous
Когда/где будет использовать (хэшсет + список) над LinkedHashset для уникальной и упорядоченной коллекции объектов?

Сообщение Anonymous »

Итак, моя проблема проста - поддерживать упорядоченный набор входов, которые не позволяют дубликатам. Вот пример, показывающий обе реализации: < /p>

Код: Выделить всё

class TestClass{
private final Set setOfThingIds;
private final List listOfThings;
private final Set linkedHashSetOfThings;

// ... constructor instantiates empty objects

void addThingsViaList(List things){
for(var thing: things){
var id = getThingId(thing);
if(setOfThingIds.contains(id)) continue;
setOfThingIds.add(id);
listOfThings.add(thing);
}
}

void addThingsViaSet(List things){
for(var thing: things){
linkedHashSetOfThings.add(thing); // thingId calc added to Thing's equals method
}
}
}

Вопрос: когда мы хотим рассмотреть первый метод во втором? Вещь как поле и лениво вызывается от equals () ) ... есть ли другие? Особенно те, которые не являются микрооптимизациями?


Подробнее здесь: https://stackoverflow.com/questions/797 ... e-and-orde

Вернуться в «JAVA»