Set接口提供了size方法,但没有提供get方法,因此不能直接遍历集合中的对象,只能使用迭代器。
同样是集合类的接口,为什么List提供而Set不提供呢?
原因何在?谢谢讨论。

解决方案 »

  1.   

    因为Set 是 按hash算法 来实现的。 里面的元素没有顺序,自然也没有什么索引。
    ,所以不能象 List 那样根据索引来取。
      

  2.   

    O,是哈希,谢谢。我再去仔细看看Set的JDK帮助。
      

  3.   

    Set是无序且可重复的容器类(类似于数学上所说的集合);List是有序且不可重复的容器类。装入Set内的对象是零散分布的,没有什么结构可言,所以也没办法检索;List是有结构的,比如ArrayList可以想象成类似于数组,所以可以比较方便的检索,LinkedList可以想象成是链表,所以方便实现增删。
      

  4.   

    楼上的你说错了吧,Set集合是不重复的集合,List才是可重复的。
    别的内容嘛好像有点文不对题,抱歉话不中听。
      

  5.   

    Set里面是不是你插入的顺序,所以不能以index来取出!
      

  6.   

    呵呵,小熊猫的正解。
    你要拿第5个数据,可是。。 哪个才是第5个呢??、 真是挠头!!!所以 set 没有get方法
      

  7.   

    因为set是无序集合,而list是有序集合。用跌代其实就是把set里面的数据一个一个的取出来然后作为一个类似链表的数据结构存储在Iterator里