Tôi đã lột xuống mã để tái tạo một ví dụ mà ném lỗi:java TreeSet ném IllegalArgumentException: chìa khóa ra khỏi phạm vi
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);
}
}
Mục đích của mã này là để thực hiện một số loại rollover khi lấy các tập con của bộ này. Ví dụ. trong trường hợp trên, tôi muốn tất cả các yếu tố từ c [exclusive] đến b [bao gồm]. Tôi nhận thấy rằng nếu tôi nhận xét ra các dòng tailSet() hoặc headSet(), phần còn lại của mã hoạt động tốt. Tuy nhiên, khi tôi có cả hai dòng, tôi nhận được
java.lang.IllegalArgumentException: key out of range
Có thể bạn có thể lặp lại và thực hiện thủ công? – sp00m
+1 cho một [SSCCE] tốt (http://sscce.org/) – adarshr