### Question:
KeyedObjectMap extends AbstractLong2ObjectSortedMap<T> implements Serializable, Iterable<T> { @Override public KeyedObjectMap<T> tailMap(long l) { int start = findIndex(l); start = BinarySearch.resultToIndex(start); return new KeyedObjectMap<>(data.subList(start, data.size()), extractor, true); } KeyedObjectMap(Iterable<? extends T> objs, KeyExtractor<? super T> ex); @SuppressWarnings("unchecked") private  KeyedObjectMap(Iterable<? extends T> objs, KeyExtractor<? super T> ex, boolean sorted); static KeyedObjectMapBuilder<T> newBuilder(KeyExtractor<? super T> ex); static KeyedObjectMapBuilder<T> newBuilder(); static KeyedObjectMap<T> create(Collection<? extends T> objs); static KeyedObjectMap<T> create(Iterable<? extends T> objs, KeyExtractor<? super T> ex); @Override ObjectSortedSet<Entry<T>> long2ObjectEntrySet(); @Override LongSortedSet keySet(); @Override ObjectCollection<T> values(); @Override ObjectBidirectionalIterator<T> iterator(); @Override LongComparator comparator(); @Override KeyedObjectMap<T> subMap(long from, long to); @Override KeyedObjectMap<T> headMap(long l); @Override KeyedObjectMap<T> tailMap(long l); @Override long firstLongKey(); @Override long lastLongKey(); @Override T get(long k); @Override boolean containsKey(long k); @Override @SuppressWarnings("unchecked") boolean containsValue(Object v); @Override int size();  }### Answer:
@Test public void testTailMap() { KeyedObjectMap<String> m = createMap("37", "59", "42", "67"); KeyedObjectMap<String> m2 = m.tailMap(59L); assertThat(m2.size(), equalTo(2)); assertThat(m2.keySet(), contains(59L, 67L)); assertThat(m2.values(), contains("59", "67")); assertThat(m2.get(59L), equalTo("59")); assertThat(m2.get(42L), nullValue()); }