Я упростил код, чтобы воспроизвести пример, выдающий ошибку:
public class Test {
public static void main(String[] args) {
NavigableSet<String> set = new TreeSet<String>(
Arrays.asList("a", "b", "c", "d"));
NavigableSet<String> set2 = new TreeSet<String>();
set2 = set.tailSet("c", false);
set2.addAll(set.headSet("b", true));
System.out.println(set2);
}
}
Целью кода является реализация своего рода ролловера при извлечении подмножеств набора. Например. в приведенном выше случае мне нужны все элементы от c [исключительно] до b [включительно]. Я заметил, что если я закомментирую строки tailSet() или headSet(), остальная часть кода будет работать хорошо. Однако, когда у меня есть обе строки, я получаю
java.lang.IllegalArgumentException: key out of range