エラーをスローする例を再現するために、コードを削除しました。
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: キーが範囲外です