Guavaライブラリ学習:Collection(八)Rangeを学ぶ
リンク先:http://www.xx566.com/detail/148.html
前のGuavaライブラリの学習:Collection(7)Tableを勉強しました.Guava定義のTableデータ構造を勉強しました.Map<R、Map<C、V>という複雑な集合構造の遍歴と価値問題を解決するために、今回は新しいタイプのRange(区間)を勉強します.defines the boundaries around a contigous span of values of some Comprable typeは、比較可能なタイプの連続する値のために連続境界を定義する.
まず、Gava Rangeのソースコードを読んで、私達はその中の公共の方法を整理して、Rangeの使用とその作用を研究しにきて、数学の上で区間の定義に関して、いつも開閉の原則があって、Rangeの定義の中でもいくつかの数学の知識に関連して、ここではもういらないです.
Range open(C lower,C uper):Rangeを返します.lowerよりもuperの範囲よりも厳格な値を含みます.数学的表現(lower,uper)
Range closed(C lower,C uper):Rangeを返します.lowerがuperの範囲に等しいすべての値を含みます.数学は[lower,uper]を表します.
Range closed Open( C lower,C uper):Rangeを返します.lowerより厳格でuperより小さい値を含みます.数学は[lower,uper]を表します.
Range openCloed( C lower、C uper:Rangeを返します.lowerよりも厳格で、uperの範囲に等しいすべての値を含みます.数学的表現(lower、uper)
Range range( C lower,BoundType lowerType,C uper,BoundType uperType):Rangeを返します.lowerとuperの範囲のすべての値を含みます.臨界値の開閉はBoundTypeで設定できます.
Range lessThan(C endpoint):endpoint以下のすべての値Rangeを返します.
Range at Most(C endpoint):endpoint以下のすべての値Rangeを返します.
Range up To( C endpoint,BoundType boundType):上限臨界値がendpointの区間に戻り、上限開閉性はboundTypeで指定されます.
Range greaterThan(C endpoint):endpointよりも厳格な値Rangeを返します.
Range at Least(C endpoint):endpoint以上のすべての値Rangeを返します.
Range downTo( C endpoint,BoundType boundType):下限臨界値がendpointの区間に戻り、下限開閉性はboundTypeで指定します.
Range all():タイプCのすべての値を含むRangeを返します.
Range singleton(C value):唯一の着信valueを含むRangeを返す.
Range enclose All Iterable values):Rangeに戻るとvaluesに入ると比較した後の最小範囲の区間です.
bollan has LowerBound():Rangeに戻るには下限がありますか?
C lowerEnd point():Range下限の臨界点値を返します.
BoundType lowerBoundType():Rangeに戻る下限タイプBoundType、すなわち開閉性
bollan has UpperBound():Rangeに戻るには上限がありますか?
C upper Edpoint():Range上限の臨界点値を返します.
BoundType uper BoundType():Rangeに戻る上限タイプBoundType、すなわち開閉性
bollan isEmpty():Rangeが空かどうか、すなわち上下限が等しいかどうかを判断する.
bollan contains(C value):Rangeに指定されたvalueが含まれているかどうかを判断する.
bolean contains All(Iterablevalues):指定valuesの中にすべての値がRangeに含まれているかどうかを判断する.
bolean encloses(Range other):着信Rangeに戻るかどうかは、この方法を呼び出すRangeに含まれています.
bolean isConneced(Range other):二つのRangeを返して連続的に行くことができますか?
Range intersectedRange:二つのRangeの最大の交差点を返します.もしRangeが交差していないなら、異常なIllgalArgement Exceptionを投げます.
Range span(Range other):二つのRangeの合併を返します.
Range canonical(Discete Domain domann):与えられたdomain離散ドメインに戻るRangeの仕様
Rangeが提供する方法は多くて、簡単です.ここではコードの例を順次行いません.Rangeの応用シーンについて簡単に例を書いて勉強します.
詳細Functionsは、Guavaライブラリ学習:関数プログラミング(一)FunctionとFunctionsを使ってオブジェクト変換を行います.
詳細Predicatesについては、Guavaライブラリ学習:関数プログラミング(2)PredicateとPredicatesを用いて、オブジェクトフィルタリングを行ってください.
前のGuavaライブラリの学習:Collection(7)Tableを勉強しました.Guava定義のTableデータ構造を勉強しました.Map<R、Map<C、V>という複雑な集合構造の遍歴と価値問題を解決するために、今回は新しいタイプのRange(区間)を勉強します.defines the boundaries around a contigous span of values of some Comprable typeは、比較可能なタイプの連続する値のために連続境界を定義する.
まず、Gava Rangeのソースコードを読んで、私達はその中の公共の方法を整理して、Rangeの使用とその作用を研究しにきて、数学の上で区間の定義に関して、いつも開閉の原則があって、Rangeの定義の中でもいくつかの数学の知識に関連して、ここではもういらないです.
Range open(C lower,C uper):Rangeを返します.lowerよりもuperの範囲よりも厳格な値を含みます.数学的表現(lower,uper)
Range closed(C lower,C uper):Rangeを返します.lowerがuperの範囲に等しいすべての値を含みます.数学は[lower,uper]を表します.
Range closed Open( C lower,C uper):Rangeを返します.lowerより厳格でuperより小さい値を含みます.数学は[lower,uper]を表します.
Range openCloed( C lower、C uper:Rangeを返します.lowerよりも厳格で、uperの範囲に等しいすべての値を含みます.数学的表現(lower、uper)
Range range( C lower,BoundType lowerType,C uper,BoundType uperType):Rangeを返します.lowerとuperの範囲のすべての値を含みます.臨界値の開閉はBoundTypeで設定できます.
Range lessThan(C endpoint):endpoint以下のすべての値Rangeを返します.
Range at Most(C endpoint):endpoint以下のすべての値Rangeを返します.
Range up To( C endpoint,BoundType boundType):上限臨界値がendpointの区間に戻り、上限開閉性はboundTypeで指定されます.
Range greaterThan(C endpoint):endpointよりも厳格な値Rangeを返します.
Range at Least(C endpoint):endpoint以上のすべての値Rangeを返します.
Range downTo( C endpoint,BoundType boundType):下限臨界値がendpointの区間に戻り、下限開閉性はboundTypeで指定します.
Range all():タイプCのすべての値を含むRangeを返します.
Range singleton(C value):唯一の着信valueを含むRangeを返す.
Range enclose All Iterable values):Rangeに戻るとvaluesに入ると比較した後の最小範囲の区間です.
bollan has LowerBound():Rangeに戻るには下限がありますか?
C lowerEnd point():Range下限の臨界点値を返します.
BoundType lowerBoundType():Rangeに戻る下限タイプBoundType、すなわち開閉性
bollan has UpperBound():Rangeに戻るには上限がありますか?
C upper Edpoint():Range上限の臨界点値を返します.
BoundType uper BoundType():Rangeに戻る上限タイプBoundType、すなわち開閉性
bollan isEmpty():Rangeが空かどうか、すなわち上下限が等しいかどうかを判断する.
bollan contains(C value):Rangeに指定されたvalueが含まれているかどうかを判断する.
bolean contains All(Iterablevalues):指定valuesの中にすべての値がRangeに含まれているかどうかを判断する.
bolean encloses(Range other):着信Rangeに戻るかどうかは、この方法を呼び出すRangeに含まれています.
bolean isConneced(Range other):二つのRangeを返して連続的に行くことができますか?
Range intersectedRange:二つのRangeの最大の交差点を返します.もしRangeが交差していないなら、異常なIllgalArgement Exceptionを投げます.
Range span(Range other):二つのRangeの合併を返します.
Range canonical(Discete Domain domann):与えられたdomain離散ドメインに戻るRangeの仕様
Rangeが提供する方法は多くて、簡単です.ここではコードの例を順次行いません.Rangeの応用シーンについて簡単に例を書いて勉強します.
package guava;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.ComparisonChain;
import com.google.common.collect.Range;
/**
* Range:
* User: Realfighter
* Date: 2014/10/16
* Time: 22:18
*/
public class RangeTest {
public static void main(String[] args) {
// Person
Function<Person, Integer> ageFunction = new Function<Person, Integer>() {
@Override
public Integer apply(Person input) {
return input.getAge();
}
};
// 25 30
Range<Integer> ageRange = Range.closedOpen(25, 30);
// Person
// :Range Predicate , compose ageRange
Predicate<Person> personPredicate = Predicates.compose(ageRange, ageFunction);
Person person = new Person(" ", 30);
System.out.println(personPredicate.apply(person));//false,
}
}
//Person Comparable , Person
// Comparable , Range
class Person implements Comparable<Person> {
private Integer age;//
private String name;//
@Override
public int compareTo(Person o) {
// Guava ComparisonChain
return ComparisonChain.start()
.compare(this.name, o.getName())
.compare(this.age, o.getAge()).result();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Person(String name, Integer age) {
this.name = name;
this.age = age;
}
}
より多くのCompriso Charinは、Guava学習:GuavaのComprison Charin類の学習と使用を参照してください.詳細Functionsは、Guavaライブラリ学習:関数プログラミング(一)FunctionとFunctionsを使ってオブジェクト変換を行います.
詳細Predicatesについては、Guavaライブラリ学習:関数プログラミング(2)PredicateとPredicatesを用いて、オブジェクトフィルタリングを行ってください.