日期:2014-05-20  浏览次数:20798 次

这个subSet为什么不成功?
import java.util.*;

public class Test
{
public static void main(String[] args)
{
SortedSet<Integer> m = new TreeSet<Integer>();
m.add(10);
m.add(12);
m.add(15);
m.add(8);

SortedSet n = m.subSet(0, 2);
System.out.println(n);

}
}

输出是一个方括号,我觉得应该是10,12才对呀。
------解决方案--------------------
set是无序的集合,即便是TreeSet这样的似乎给你排序了,但也只是它内部的排序,他内部的实现其实是用TreeMap,所以set没有像list那样的可以用get(index),索引来取第几个元素。set的subSet方法的参数并不是固定的Integer它是泛型的E,如果楼主的
SortedSet<Integer> m = new TreeSet<Integer>();
换成
SortedSet<Object> m = new TreeSet<Object>();
你就会发现你的
m.subSet(0,2);根本就无法通过编译了
------解决方案--------------------
建议你在subSet前
System.out.println(n);
看看控制台打印出什么你就明白了