Это не точно ответ на Ваш вопрос, но в GHC на x86, quotRem на Интервале скомпилирует вниз в единственную машинную команду, тогда как divMod действительно вполне немного больше работает. Таким образом, если Вы находитесь в критическом по отношению к скорости разделе и работающий над положительными числами только, quotRem является способом пойти.
Хорошо, через некоторое время я нашел причину НЕ использовать Set как тип коллекции. Из-за проблем с переопределениями hashcode / equals и сохранением спящего режима использование любых функций Java API, вызывающих hashcode / equals, является плохой идеей. Нет хорошего способа последовательно сравнивать объекты до и после сохранения. Придерживайтесь коллекций, которые не зависят от хэш-кода equals /, например bag
.
Подробнее здесь:
http://community.jboss.org/wiki/EqualsandHashCode (эта ссылка звучит так, будто бизнес-ключ - это лучший способ, но прочтите следующую ссылку полностью, чтобы увидеть почему это не всегда хорошая идея)
https://forum.hibernate.org/viewtopic.php?f=1&t=928172 (прочтите все обсуждение, чтобы у вас закружилась голова)
{{ 1}}Я предполагаю, что люди используют самые разные вещи :-) - разные типы коллекций служат разным целям, поэтому «лучший» зависит от того, для чего он вам нужен.
Тем не менее, использование List
в коде обычно более удобно, чем использование Set
, даже если упомянутый List
неупорядочен. По крайней мере, '.get (0)' проще для глаз, чем .iterator (). Next ()
:-) Поддержка пакета Hibernate определенно подходит для этой цели, плюс вы даже можете добавить упорядочить по
декларации (если применимо) и отсортировать список.
idbag - совершенно другое животное, используемое для ассоциаций «многие ко многим»; вы не можете сравнить его с обычным набором или списком.
Я бы порекомендовал использовать набор, потому что набор определяется как набор уникальных элементов, и обычно это то, с чем вы имеете дело.
И .iterator (). Next ()
сохраняется, когда в вашей коллекции нет элемента.
.get (0)
может вызвать исключение IndexOutOfBoundsException
, если вы обращаетесь к пустому списку.