Существует ли реализация открытого интервала для Java?

У меня есть классификация определенных значений в разных интервалах. Большинство из них имеют форму [20-30], но некоторые имеют форму [30-бесконечность).

Есть ли интервальный класс, о котором вы знаете, который может представлять:

  • интервал, который не замкнут с обеих сторон (например, (0-5) или [0-5))
  • интервал, который закрывается (или начинается) на бесконечности

person boutta    schedule 07.04.2009    source источник


Ответы (3)


Похоже, проект Time&Money имеет класс Interval, который вам нужен.

Посмотрите эти файлы в их svn: интервальный пакет.

person Sergey    schedule 07.04.2009
comment
Использование этого звучит дорого и отнимает много времени. - person tpdi; 07.04.2009
comment
Почему вы думаете, что это дорого? - person boutta; 07.04.2009
comment
@tpdi эти несколько классов можно просто скопировать, если вы имеете в виду включение всей библиотеки. Это по лицензии MIT. - person Sergey; 07.04.2009

Проект Apache-commons-lang (http://commons.apache.org/lang/) содержит классы, работающие с диапазонами (например, IntRange — https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/math/IntRange.html). Я не уверен, что он покрывает все ваши потребности, но, возможно, стоит проверить.

person Gadi    schedule 07.04.2009
comment
Я видел диапазоны, но поскольку они зависят от типа, они не так полезны, как классы из библиотеки Time&Money. - person boutta; 07.04.2009
comment
версия Range для Apache 3 использует дженерики. - person Eyal; 19.07.2015

Я не знаю ни одного библиотечного класса, но я помню, как довольно тривиально писал такие классы.

person tpdi    schedule 07.04.2009