Получение подмножества с закрытым интервалом для пользовательских классов в Java - PullRequest
0 голосов
/ 01 июня 2018

Согласно Java API:

Следующая строка содержит количество слов между «дверным звонком» и «рассолом», включая дверной звонок и рассол, в словаре.

count = dictionary.subSet ("doorbell", "pickle \ 0"). Size ();

Я понимаю, что для набора элементов String добавление "\ 0" будет работатьи для набора целочисленных элементов использование +1 будет работать.

Если набор содержит определенные пользователем объекты, подмножество () дает полуоткрытый диапазон.

count = employee.subSet(obj1, obj6).size();

Мне было интересно, есть ли какой-нибудь возможный способ получить закрытый диапазон в этом случае.

1 Ответ

0 голосов
/ 01 июня 2018

Для NavigableSet (например, TreeSet) вы можете просто использовать перегрузку subSet, которая принимает параметры инклюзивности :

employee.subSet(obj1, true, obj6, true)

Для общего SortedSet, единственные способы, которыми вы могли бы сделать это:

  1. Определить некоторое понятие построения Employee, который находится "только за" верхней границей.

    Вы могли бысделать это, зная что-то из внутренних элементов класса, например, если Employee s отсортированы по фамилии, а фамилия вашей верхней границы была "Turner", вы могли бы создать сотрудника с именем "Turner\0".

...