TimestampMap implements TimeMap<Double, T> { public double[] getTimestamps() { if (size < array.length) { double[] res = new double[size]; System.arraycopy(array, 0, res, 0, size); return res; } else { return array; } } TimestampMap();  TimestampMap(int capacity); protected  TimestampMap(double[] keys); @Override boolean put(Double timestamp, T value); @Override boolean remove(Double timestamp); @Override T get(Double timestamp, T defaultValue); @Override Object get(Interval interval, Estimator estimator); @Override T[] toValuesArray(); @Override abstract Class<T> getTypeClass(); @Override abstract boolean isSupported(Estimator estimator); @Override int size(); @Override boolean isEmpty(); @Override boolean contains(Double timestamp); double[] getTimestamps(); @Override Double[] toKeysArray(); @Override void clear(); @Override int hashCode(); @Override boolean equals(Object obj); String toString(TimeFormat timeFormat, DateTimeZone timeZone); String toString(TimeFormat timeFormat); @Override String toString();  }
@Test public void testGetTimestamps() { TimestampDoubleMap set = new TimestampDoubleMap(); set.put(1.0, 1.0); set.put(2.0, 2.0); testDoubleArrayEquals(new double[] { 1.0, 2.0 }, set.getTimestamps()); }