Я новичок в Java, и я не знаю различий между реализациями Java-коллекции.Какую коллекцию я должен использовать, чтобы проверить, находится ли значение в коллекции элементов 100K?
Мне нужно обработать до 100 тыс. Записей импортированных данных. В этом списке могут быть дубликаты. Я должен положить все это в БД. Перед импортом я очищаю таблицу базы данных, поэтому вначале нет дубликатов в БД.
A am a batch inserting data with hibernate. Я хочу сделать что-то вроде этого:
SomeCollectionClass<Integer> alreadyInsertedRecords;
//...
if (!alreadyInsertedRecords.contains(currentRecord.hashCode()) {
save_to_database(currentRecord);
alreadyInsertedRecords.put(currentRecord.hashCode());
} else {
logger.log("Record no 1234 is a duplicate, skipping");
}
Какого класса коллекции я должен использовать, чтобы проверить, если запись была вставлена в БД?
Как я уже сказал, может быть более 100 000 записей, поэтому коллекция должна быть быстрой для поиска, быстрой вставки и небольшого объема памяти.
http://docs.oracle.com/javase/6/docs/api/java/util/HashSet.html – planetjones
Что сказал planetjones. Кроме того, вы должны использовать 'hashCode()', если он гарантированно отличается для каждого объекта. В противном случае вы можете получить ложные срабатывания в 'contains()'. – ddmps
@ Pescis: это просто неправильно. Прочтите javadoc HashSet, equals и hashCode. –