/** * Sorts the time series values. */ public void sort() { if (timestamps.size() > 1) { LongList sortedTimes = new LongList(timestamps.size()); DoubleList sortedValues = new DoubleList(values.size()); points().sorted((o1, o2) -> Long.compare(o1.getTimestamp(), o2.getTimestamp())).forEachOrdered(p -> { sortedTimes.add(p.getTimestamp()); sortedValues.add(p.getValue()); }); timestamps = sortedTimes; values = sortedValues; } }
private Point of(int index) { return new Point(index, timestamps.get(index), values.get(index)); }
/** * A stream over the points * * @return the points as points */ public Stream<Point> points() { if (timestamps.isEmpty()) { return Stream.empty(); } return Stream.iterate(of(0), pair -> of(pair.getIndex() + 1)).limit(timestamps.size()); }
long currentTimestamp = p.getTimestamp(); currentValue = p.getValue(); lastStoredDate = p.getTimestamp(); lastStoredOffset = timeStamp;