Обычно вы помещаете файлы, такие как свойства и файлы yaml, в каталог с именем src/main/resources
. Инструменты сборки, такие как Maven и Gradle, сканируют этот каталог на наличие файлов и включают их в jar (обычно без дополнительной настройки). Если он находится только в каталоге src
, и у вас нет специальной конфигурации, чтобы сказать Maven добавить файлы из этого каталога в ваш jar-файл, это не будет.
Когда файлы находятся в каталоге src/main/resources
, вы сможете получить к ним доступ в своем приложении на пути к классам, например, App.class.getResourceAsStream()
.
Такого рода вещь кажется подобной тому, что сделано Firefox при выводе подсказок, что является сайтом, для которого Вы вводите.
К сожалению, я не знаю точно, как Firefox делает это, балльная система кажется хорошей также, возможно, необходимо будет сбалансировать точки :)
Я пошел бы для чего-то подобного:
NoM = количество почты
(NoM, отправленный в X сегодня) + 1/2 * (NoM, отправленный в X в течение прошлой недели)/7 + 1/3 * (NoM, отправленный в X в течение прошлого месяца)/30
Контакты, которые Вы не записали в течение прошлого месяца (это могло быть изменено) будут иметь 0 точек. Вы могли начать сортировать их для NoM, отправленного всего (так как это находится в списке контактов :). Они будут, показал после контактов с точками> 0
Это - просто идея, так или иначе это должно дать другую важность для большинства и просто отправленный по почте контакты.
Смотрите на Сам организующие списки.
Беглый и неодобрительный взгляд:
Перемещение к Передней Эвристике: связанный список, Такой, что каждый раз, когда узел выбран, он перемещен в переднюю сторону списка.
Эвристика частоты: связанный список, такой, что каждый раз, когда узел выбран, его подсчет частот увеличен, и затем узел, пузырится к передней стороне списка, так, чтобы наиболее часто получаемый доступ был во главе списка.
Похоже, что перемещение к передней реализации лучше всего удовлетворило бы Вашим потребностям.
Править: Когда адрес будет выбран, добавьте тот к его частоте и переместитесь в переднюю сторону группы узлов с тем же весом (или (отделение веса x) для группировок скаковой лошади). Я рассматриваю старение как настоящую проблему с Вашим предложенным внедрением, в котором оно требует вычисления веса на каждом объекте. Сам организующий список хороший способ пойти, но для алгоритма нужно немного тонкой настройки, чтобы сделать то, что Вы хотите.
Дальнейшее Редактирование: Старение относится к тому, что веса уменьшаются со временем, что означает, что необходимо знать каждый раз, когда адрес использовался. Что означает, что необходимо иметь всю почтовую историю в наличии для Вас при построении списка.
Проблема - то, что мы хотим выполнить вычисления (кроме поиска) на узле только, когда к нему на самом деле получают доступ - Это дает нам нашу статистическую хорошую производительность.
Если Вы хотите стать сумасшедшими, отметьте самые 'активные' электронные письма одним из нескольких способов:
Затем представьте активные электронные письма наверху списка. Обратите внимание, к которому "группируются", Ваш пользователь использует больше всего. Переключитесь на ту стратегию сортировки исключительно после того, как достаточно данных будет собрано.
Это - большая работа, но вид забавы...
Возможно, считайте количество электронных писем отправленным в каждый адрес. Затем:
ORDER BY EmailCount DESC, LastName, FirstName
Тем путем Ваши чаще всего используемые адреса на первом месте, даже если они не использовались за несколько дней.
Мне нравится идея основанной на точке системы с точками для недавнего использования, частота использования и потенциально другие факторы (предпочтите контакты в локальном домене?).
Я работал над несколькими системами как это, и ни "последний раз используемый", ни "обычно используемая" работа очень хорошо. "Новой" может быть реальная боль, если Вы случайно вводите что-то с опечаткой однажды. С другой стороны, "наиболее используемый" не развивается очень со временем, если у Вас был большой контакт с кем-то в прошлом году, но теперь Ваше задание изменилось, например.
После того как у Вас есть набор измерений, которые Вы хотите использовать, Вы могли создать интерактивный apoplication, чтобы проверить различные веса и видеть, которые дают Вам лучшие результаты для некоторых демонстрационных данных.