com.google.common.collect.Range.canonical()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(7.8k)|赞(0)|评价(0)|浏览(82)

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

Range.canonical介绍

[英]Returns the canonical form of this range in the given domain. The canonical form has the following properties:

  • equivalence: a.canonical().contains(v) == a.contains(v) for all v (in other words, ContiguousSet.create(a.canonical(domain), domain).equals(
  • uniqueness: unless a.isEmpty(), ContiguousSet.create(a, implies a.canonical(domain).equals(b.canonical(domain))
  • idempotence: a.canonical(domain).canonical(domain).equals(a.canonical(domain))

Furthermore, this method guarantees that the range returned will be one of the following canonical forms:

  • [start..end)
  • [start..+∞)
  • (-∞..end) (only if type C is unbounded below)
  • (-∞..+∞) (only if type C is unbounded below)
    [中]返回给定域中此范围的标准形式。规范形式具有以下属性:
    *等价性:a.规范()。contains(v)==a.contains(v)代表所有v(换句话说,ContiguousSet.create(a.canonical(domain),domain)。等于(
    *唯一性:除非a.isEmpty(),否则为ContiguousSet。创建(a,意味着a.canonical(域)。等于(b.正则(域))
    *幂等性:典型的(域)。规范(域)。等于(a.规范(域))
    此外,此方法保证返回的范围将是以下规范形式之一:
    *[开始..结束]
    *[开始+∞)
  • (-∞..结束)(仅当类型C在下方无边界时)
  • (-∞..+∞) (仅当类型C在下面是无界的)

代码示例

代码示例来源:origin: google/google-java-format

@Override
Range<Integer> computeRange() {
 return Range.singleton(tok.getIndex()).canonical(INTEGERS);
}

代码示例来源:origin: google/j2objc

return ImmutableSortedSet.of();
Range<C> span = span().canonical(domain);
if (!span.hasLowerBound()) {

代码示例来源:origin: google/google-java-format

@Override
Range<Integer> computeRange() {
 return Range.singleton(token.getTok().getIndex()).canonical(INTEGERS);
}

代码示例来源:origin: google/guava

return ImmutableSortedSet.of();
Range<C> span = span().canonical(domain);
if (!span.hasLowerBound()) {

代码示例来源:origin: google/google-java-format

private static Range<Integer> union(Range<Integer> x, Range<Integer> y) {
 return x.isEmpty() ? y : y.isEmpty() ? x : x.span(y).canonical(INTEGERS);
}

代码示例来源:origin: google/google-java-format

/**
 * Given an {@code InputOutput}, compute the map from tok indices to line ranges.
 *
 * @param put the {@code InputOutput}
 * @return the map from {@code com.google.googlejavaformat.java.JavaInput.Tok} indices to line
 *     ranges in this {@code put}
 */
public static Map<Integer, Range<Integer>> makeKToIJ(InputOutput put) {
 Map<Integer, Range<Integer>> map = new HashMap<>();
 int ijN = put.getLineCount();
 for (int ij = 0; ij <= ijN; ij++) {
  Range<Integer> range = put.getRanges(ij).canonical(INTEGERS);
  for (int k = range.lowerEndpoint(); k < range.upperEndpoint(); k++) {
   if (map.containsKey(k)) {
    map.put(k, Range.closedOpen(map.get(k).lowerEndpoint(), ij + 1));
   } else {
    map.put(k, Range.closedOpen(ij, ij + 1));
   }
  }
 }
 return map;
}

代码示例来源:origin: google/google-java-format

private static Range<Integer> offsetRange(Range<Integer> range, int offset) {
 range = range.canonical(DiscreteDomain.integers());
 return Range.closedOpen(range.lowerEndpoint() + offset, range.upperEndpoint() + offset);
}

代码示例来源:origin: google/guava

public void testCanonical_unboundedDomain() {
 assertEquals(Range.lessThan(0), Range.lessThan(0).canonical(UNBOUNDED_DOMAIN));
 assertEquals(Range.lessThan(1), Range.atMost(0).canonical(UNBOUNDED_DOMAIN));
 assertEquals(Range.atLeast(0), Range.atLeast(0).canonical(UNBOUNDED_DOMAIN));
 assertEquals(Range.atLeast(1), Range.greaterThan(0).canonical(UNBOUNDED_DOMAIN));
 assertEquals(Range.all(), Range.<Integer>all().canonical(UNBOUNDED_DOMAIN));
}

代码示例来源:origin: google/google-java-format

private static Range<Integer> union(Range<Integer> x, Range<Integer> y) {
 return x.isEmpty() ? y : y.isEmpty() ? x : x.span(y).canonical(DiscreteDomain.integers());
}

代码示例来源:origin: google/guava

public void testCanonical() {
 assertEquals(Range.closedOpen(1, 5), Range.closed(1, 4).canonical(integers()));
 assertEquals(Range.closedOpen(1, 5), Range.open(0, 5).canonical(integers()));
 assertEquals(Range.closedOpen(1, 5), Range.closedOpen(1, 5).canonical(integers()));
 assertEquals(Range.closedOpen(1, 5), Range.openClosed(0, 4).canonical(integers()));
 assertEquals(
   Range.closedOpen(Integer.MIN_VALUE, 0),
   Range.closedOpen(Integer.MIN_VALUE, 0).canonical(integers()));
 assertEquals(Range.closedOpen(Integer.MIN_VALUE, 0), Range.lessThan(0).canonical(integers()));
 assertEquals(Range.closedOpen(Integer.MIN_VALUE, 1), Range.atMost(0).canonical(integers()));
 assertEquals(Range.atLeast(0), Range.atLeast(0).canonical(integers()));
 assertEquals(Range.atLeast(1), Range.greaterThan(0).canonical(integers()));
 assertEquals(Range.atLeast(Integer.MIN_VALUE), Range.<Integer>all().canonical(integers()));
}

代码示例来源:origin: wildfly/wildfly

return ImmutableSortedSet.of();
Range<C> span = span().canonical(domain);
if (!span.hasLowerBound()) {

代码示例来源:origin: google/google-java-format

public RangeSet<Integer> characterRangesToTokenRanges(Collection<Range<Integer>> characterRanges)
   throws FormatterException {
  RangeSet<Integer> tokenRangeSet = TreeRangeSet.create();
  for (Range<Integer> characterRange0 : characterRanges) {
   Range<Integer> characterRange = characterRange0.canonical(DiscreteDomain.integers());
   tokenRangeSet.add(
     characterRangeToTokenRange(
       characterRange.lowerEndpoint(),
       characterRange.upperEndpoint() - characterRange.lowerEndpoint()));
  }
  return tokenRangeSet;
 }
}

代码示例来源:origin: google/google-java-format

RangeSet<Integer> iRangeSet = iRangeSet0.subRangeSet(Range.closed(0, javaInput.getkN()));
for (Range<Integer> iRange : iRangeSet.asRanges()) {
 Range<Integer> range = expandToBreakableRegions(iRange.canonical(DiscreteDomain.integers()));
 if (range.equals(EMPTY_RANGE)) {

代码示例来源:origin: com.google.api/api-compiler

private Feature(Builder builder) {
 Preconditions.checkArgument(
   !builder.supportedVersionRange.canonical(DiscreteDomain.integers()).isEmpty(),
   "supportedVersionRange must not be empty");
 featureName = builder.featureName;
 childBindings = builder.childBindings.build();
 supportedVersionRange = builder.supportedVersionRange;
 defaultVersionRange = builder.defaultVersionRange;
}

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

public static Range<Long> normalize(Range<Long> range) {
  range = RangeUtils.startFromZero(range);
  Range<Long> result = range.canonical(DiscreteDomain.longs());
  return result;
}

代码示例来源:origin: batfish/batfish

/** Include a range. The {@link Range} must be a finite range. */
public Builder including(Range<Integer> range) {
 checkArgument(
   range.hasLowerBound() && range.hasUpperBound(), "Infinite ranges are not supported");
 if (!range.isEmpty()) {
  _including.add(range.canonical(DiscreteDomain.integers()));
 }
 return this;
}

代码示例来源:origin: batfish/batfish

/** Include a {@link SubRange} */
public Builder including(SubRange range) {
 if (!range.isEmpty()) {
  _including.add(
    Range.closed(range.getStart(), range.getEnd()).canonical(DiscreteDomain.integers()));
 }
 return this;
}

代码示例来源:origin: org.onosproject/onlab-misc

/**
 * Creates a range from a Guava's range.
 *
 * @param range Guava's range
 * @return this range
 */
public static ClosedOpenRange of(Range<Integer> range) {
  return new ClosedOpenRange(
      range.canonical(DiscreteDomain.integers()).lowerEndpoint(),
      range.canonical(DiscreteDomain.integers()).upperEndpoint());
}

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

@Override
public Flowable<T> apply(Range<Long> range) {
  Range<Long> validRange = Range.closedOpen(0l, (long)items.size());
  Range<Long> effectiveRange = range.intersection(validRange).canonical(DiscreteDomain.longs());
  List<T> subList = items.subList(effectiveRange.lowerEndpoint().intValue(), effectiveRange.upperEndpoint().intValue());
  Flowable<T> result = Flowable.fromIterable(subList);
  return result;
  //return subList.stream();
}

代码示例来源:origin: SmartDataAnalytics/jena-sparql-api

/**
 *
 * @param range
 * @return
 */
public static long rangeToLimit(Range<Long> range) {
  range = range == null ? null : range.canonical(DiscreteDomain.longs());
  long result = range == null || !range.hasUpperBound()
    ? Query.NOLIMIT
    : DiscreteDomain.longs().distance(range.lowerEndpoint(), range.upperEndpoint());
  return result;
}

相关文章