Набор деревьев Java бросает недопустимое исключение ArgumentException: key out of range

Я упростил код, чтобы воспроизвести пример, выдающий ошибку:

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

6
задан Jigar Joshi 13 June 2012 в 09:30
поделиться