2017-12-17 5 views
2

範囲を作成する方法の例を教えてもらえますかJOOL & JOOLのRangeの意味はなんですか?そのJavaの医者はJOOLで範囲を作成する方法

と言っています。範囲は同じタイプの2倍の特殊なTuple2です。

また、Range

public boolean overlaps(Tuple2<T, T> other) { 
    return Tuple2.overlaps(this, other); 
} 

public boolean overlaps(T t1, T t2) { 
    return overlaps(new Range<>(t1, t2)); 
} 

public Optional<Range<T>> intersect(Tuple2<T, T> other) { 
    return Tuple2.intersect(this, other).map(Range::new); 
} 

public Optional<Range<T>> intersect(T t1, T t2) { 
    return intersect(new Range<>(t1, t2)); 
} 

のようなメソッドを持っているだけでなく、これらのユースケースを説明してください。ありがとう!

+0

ドキュメントはhttps://jar-download.com/java-documentation-javadoc.php?a=jool&g=orgから参照できます。 jooq&v = 0.9.12。それはかなり明確ではありませんが、あなたに手がかりを与えることができます。 –

+0

@AdeshKumarはい!私はそれを理解しようとしています。しかし、よりよい答えを得ることと、同じことをより詳細にすることは良いことです。 –

答えて

1

Rangeは、基本的に数学の範囲に似ています。 1..6範囲を1から開始して6で終わる範囲の2つの方法で作成することが可能である: -

  1. JoolライブラリからタイプTuple2のパラメータでコンストラクタを呼び出すことにより、

範囲範囲=新しい範囲<>(Tuple.tuple(20,30));

又は

  • レンジ範囲=新しい範囲<>(20,30)の2同じタイプのコンストラクタを呼び出すことにより、

    さて、あなたは範囲overlap & intersection上の2つのアクションを実行することができます。

    オーバーラップとは、範囲内に少なくとも1つの要素が他の範囲にも存在することを意味します。 overlapsメソッドはtrueまたはfalseを返します。以下の例を参照してください。 -

    同様に、交差点とは、2つの範囲の交差点から生じる範囲を意味します。以下の例を参照してください。 -

    パッケージjool.features.analysis.tuple;レンジで

    import org.jooq.lambda.tuple.Range; 
    import org.jooq.lambda.tuple.Tuple; 
    
    public class RangeTest { 
    
        public static void main(String[] args) { 
    
         Range<Integer> range = new Range<>(20,30); 
         Range<Integer> range2 = new Range<>(Tuple.tuple(20,30)); 
    
         System.out.println(range.intersection(22,40)); // returns Range(22,30) 
    
        } 
    } 
    

    あなたは以下のように同じ値の型またはジェネリック型のTuple2を渡すことができ、次のいずれか - Tは任意のジェネリック型

    タプルの値の両方があるべきある。すなわち

    Tuple2<T,T>をタプルの長さは2でなければなりません。

    すべての仕組みが分かりました。しかし、私はまだRangeを使用するユースケースのシナリオを理解していません。

    関連する問題