io.prestosql.spi.predicate.Range.overlaps()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.2k)|赞(0)|评价(0)|浏览(205)

本文整理了Java中io.prestosql.spi.predicate.Range.overlaps方法的一些代码示例,展示了Range.overlaps的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Range.overlaps方法的具体详情如下:
包路径:io.prestosql.spi.predicate.Range
类名称:Range
方法名:overlaps

Range.overlaps介绍

暂无

代码示例

代码示例来源:origin: prestosql/presto

  1. @Override
  2. public SortedRangeSet intersect(ValueSet other)
  3. {
  4. SortedRangeSet otherRangeSet = checkCompatibility(other);
  5. Builder builder = new Builder(type);
  6. Iterator<Range> iterator1 = getOrderedRanges().iterator();
  7. Iterator<Range> iterator2 = otherRangeSet.getOrderedRanges().iterator();
  8. if (iterator1.hasNext() && iterator2.hasNext()) {
  9. Range range1 = iterator1.next();
  10. Range range2 = iterator2.next();
  11. while (true) {
  12. if (range1.overlaps(range2)) {
  13. builder.add(range1.intersect(range2));
  14. }
  15. if (range1.getHigh().compareTo(range2.getHigh()) <= 0) {
  16. if (!iterator1.hasNext()) {
  17. break;
  18. }
  19. range1 = iterator1.next();
  20. }
  21. else {
  22. if (!iterator2.hasNext()) {
  23. break;
  24. }
  25. range2 = iterator2.next();
  26. }
  27. }
  28. }
  29. return builder.build();
  30. }

代码示例来源:origin: prestosql/presto

  1. SortedRangeSet build()
  2. {
  3. Collections.sort(ranges, Comparator.comparing(Range::getLow));
  4. NavigableMap<Marker, Range> result = new TreeMap<>();
  5. Range current = null;
  6. for (Range next : ranges) {
  7. if (current == null) {
  8. current = next;
  9. continue;
  10. }
  11. if (current.overlaps(next) || current.getHigh().isAdjacent(next.getLow())) {
  12. current = current.span(next);
  13. }
  14. else {
  15. result.put(current.getLow(), current);
  16. current = next;
  17. }
  18. }
  19. if (current != null) {
  20. result.put(current.getLow(), current);
  21. }
  22. return new SortedRangeSet(type, result);
  23. }
  24. }

代码示例来源:origin: io.prestosql/presto-spi

  1. @Test
  2. public void testOverlaps()
  3. {
  4. assertTrue(Range.greaterThan(BIGINT, 1L).overlaps(Range.lessThanOrEqual(BIGINT, 2L)));
  5. assertFalse(Range.greaterThan(BIGINT, 2L).overlaps(Range.lessThan(BIGINT, 2L)));
  6. assertTrue(Range.range(BIGINT, 1L, true, 3L, false).overlaps(Range.equal(BIGINT, 2L)));
  7. assertTrue(Range.range(BIGINT, 1L, true, 3L, false).overlaps(Range.range(BIGINT, 2L, false, 10L, false)));
  8. assertFalse(Range.range(BIGINT, 1L, true, 3L, false).overlaps(Range.range(BIGINT, 3L, true, 10L, false)));
  9. assertTrue(Range.range(BIGINT, 1L, true, 3L, true).overlaps(Range.range(BIGINT, 3L, true, 10L, false)));
  10. assertTrue(Range.all(BIGINT).overlaps(Range.equal(BIGINT, Long.MAX_VALUE)));
  11. }

代码示例来源:origin: prestosql/presto

  1. public Range intersect(Range other)
  2. {
  3. checkTypeCompatibility(other);
  4. if (!this.overlaps(other)) {
  5. throw new IllegalArgumentException("Cannot intersect non-overlapping ranges");
  6. }
  7. Marker lowMarker = Marker.max(low, other.getLow());
  8. Marker highMarker = Marker.min(high, other.getHigh());
  9. return new Range(lowMarker, highMarker);
  10. }

代码示例来源:origin: prestosql/presto

  1. @Test
  2. public void testOverlaps()
  3. {
  4. assertTrue(Range.greaterThan(BIGINT, 1L).overlaps(Range.lessThanOrEqual(BIGINT, 2L)));
  5. assertFalse(Range.greaterThan(BIGINT, 2L).overlaps(Range.lessThan(BIGINT, 2L)));
  6. assertTrue(Range.range(BIGINT, 1L, true, 3L, false).overlaps(Range.equal(BIGINT, 2L)));
  7. assertTrue(Range.range(BIGINT, 1L, true, 3L, false).overlaps(Range.range(BIGINT, 2L, false, 10L, false)));
  8. assertFalse(Range.range(BIGINT, 1L, true, 3L, false).overlaps(Range.range(BIGINT, 3L, true, 10L, false)));
  9. assertTrue(Range.range(BIGINT, 1L, true, 3L, true).overlaps(Range.range(BIGINT, 3L, true, 10L, false)));
  10. assertTrue(Range.all(BIGINT).overlaps(Range.equal(BIGINT, Long.MAX_VALUE)));
  11. }

相关文章