1 Temmuz 2019 Pazartesi

ImmutableRangeSet Sınıfı

constructor
Şöyle yaparız.
ImmutableRangeSet<Integer> rangeSet = ImmutableRangeSet.<Integer>builder()
        .add(Range.closed(1, 10).canonical(DiscreteDomain.integers()))
        .add(Range.closed(11, 15))
        .build()
asSet metodu
Sınıf içindeki tüm rakamları set olarak döndürür

copyOf metodu
Çakışan aralıklar varsa exception fırlatır. Çıktı olarak şunu alırız
java.lang.IllegalArgumentException: 
Overlapping ranges not permitted but found [0..2] overlapping [1..4]
Örnek
Şöyle yaparız.
 //given
ImmutableList<Range<Integer>> ranges = ImmutableList.of(
  Range.closed(0, 2),
  Range.closed(3, 4),
  Range.closed(9, 10)
);
//when
ImmutableRangeSet<Integer> rangeSet = ImmutableRangeSet.copyOf(ranges);
//then
assertThat(rangeSet.asSet(DiscreteDomain.integers()))
  .containsOnly(0, 1, 2, 3, 4, 9, 10);
unionOf metodu
Çakışan aralıklar olsa bilr bunları birleştirir.
Örnek
Elimizde şöyle bir kod olsun.
//given
ImmutableList<Range<Integer>> ranges = ImmutableList.of(
  Range.closed(0, 2),
  Range.closed(1, 4),
  Range.closed(9, 10)
);
Şöyle yaparız.
//when
ImmutableRangeSet<Integer> rangeSet = ImmutableRangeSet.unionOf(ranges);

Hiç yorum yok:

Yorum Gönder