Я хочу получить эксклюзивный набор хвостов SortedSet. Самый короткий метод, который я могу придумать:
private void exclusiveTailSet(SortedSet<String> s, String start) {
System.out.println(s); // [Five, Four, One, Six, Start, Three, Two]
SortedSet<String> t = s.tailSet(start);
System.out.println(t); // [Start, Three, Two]
Iterator<String> i = t.iterator();
i.next();
SortedSet<String> u = t.tailSet(i.next());
System.out.println(u); // [Three, Two]
}
Javadoc для tailSet предлагает запросить подмножество, начиная со следующего элемента в домене (т. Е. Для строк, вызывающих s.tailSet(start+"\0");
), однако на самом деле я работаю с такими объектами, что это будет много больше накладных расходов на его создание.
Что такое эффективный и чистый общий метод создания эксклюзивного набора хвостов?