Guava API学習のRange

1629 ワード


      Guavaに新しいタイプのRangeが追加され、名前から区間に関するデータ構造であることがわかります.Googleの公式文書から定義することができる:Rangeは連続スパンの範囲境界を定義し、この連続スパンは比較可能なタイプ(Comparable type)である.たとえば、1~100の整数データです.しかし、私たちはこの区間の値を遍歴することはできません.この目的を達成する必要がある場合は、この範囲をContiguousSet.create(com.google.comon.collect.Range,com.google.common.collect.DiscreteDomain)に伝えることができます.この範囲を巡る値に達します.数学の範囲には境界と無境界の区別があることを知っています.同様に、Guavaにもこの説がある.この範囲が境界がある場合、この範囲はまた、開セット(端点を含まない)と閉セット(端点を含む)を含むことに分けることができる.無解であれば+∞で表すことができます.列挙すると、9つの範囲が表示されます.
 
Guava Range
上の表の機能関数の欄はRangeクラスが提供する関数を表し,それぞれ9種類の出現可能な範囲区間を表す.区間の両側に範囲が存在する場合、この場合、区間の右側の数が区間の左の数より小さくなることはあり得ない.極端な場合,区間の両側の数は等しいが,最低1つの境界が閉セットであることが前提条件であり,そうでなければ成立しない.例:
 
[a..a] :        a;
[a..a); (a..a] :       ,      ;
(a..a) :         ,     Range      。

 Rangeを使用する場合は、次の点に注意してください.
 
 
  • 区間を構築する際には、できるだけ変更できないタイプを使用します.可変タイプを使用する必要がある場合は、区間タイプ構造が完了した場合、区間の両側の数を変更しないでください.
  • Comparableインタフェースを実装したクラスがRangeに転送されると、未定義の状況が発生する.現在、Range APIはこのような使い方を阻止していないが、将来的には変わる可能性がある.