Interval class Null safety

An interval between two points, start and end.

Interval can calculate unions, intersections, and differences between individual intervals:

final a = Interval(0, 3);
final b = Interval(2, 5);
print(a.union(b)); // [[0, 5]]
print(a.intersection(b)); // [2,3]
print(a.difference(b)); // [[0, 2]]

See IntervalTree for calculating more complex unions, intersections, and differences between collections of intervals.

Notice that the Interval class name unfortunately clashes with the Interval class from the Flutter animation library. However, there are two ways around this problem. Either use the syntax with list literals, or import either library with a name prefix, for example:

import 'package:interval_tree/interval_tree.dart' as ivt;

final interval = ivt.Interval(1, 2);
Inheritance
Annotations
• @immutable

Constructors

Interval(dynamic start, dynamic end)
Creates an interval between start and end points.
Interval.copy(Interval other)
Creates a copy of the other interval.

Properties

end → dynamic
Returns the end point of this interval.
hashCode int
Returns the hash code for this interval.
length → dynamic
Returns the length of this interval.
runtimeType Type
A representation of the runtime type of the object.
start → dynamic
Returns the start point of this interval.

Methods

compareTo(Interval other) int
Compares this interval to the other interval.
override
contains(Interval other) bool
Returns true if this interval contains the other interval.
difference(Interval other) Iterable<Interval>?
Returns the difference between this interval and the other interval, or null if the other interval contains this interval.
intersection(Interval other) Interval?
Returns the intersection between this interval and the other interval, or null if the intervals do not intersect.
intersects(Interval other) bool
Returns true if this interval intersects with the other interval.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
toString()
Returns a string representation of this interval.
override
union(Interval other)
Returns the union of this interval and the other interval.

Operators

operator <(Interval other) bool
Returns true if this interval start or ends before the other interval.
operator <=(Interval other) bool
Returns true if this interval starts or ends before or same as the other interval.
operator ==(Object other) bool
Returns true if this interval starts and ends same as the other interval.
override
operator >(Interval other) bool
Returns true if this interval starts or ends after the other interval.
operator >=(Interval other) bool
Returns true if this interval starts or ends after or same as the other interval.