rt

解决方案 »

  1.   

    首先Collection和Map是两个毫无关系的接口,Collection是对象集合,Map是键值对集合
    Collection有两个子接口List和Set
    List可以通过下标(1,2..)来取得值,值可以重复
    而Set只能通过游标来取值,并且值是不能重复的
    ArrayList,Vector,LinkedList是List的实现类
    ArrayList是线程不安全的,Vector是线程安全的,这两个类底层都是由数组实现的
    LinkedList是线程不安全的,底层是由链表实现的
    HashTable和HashMap是Map的实现类
    HashTable是线程安全的,不能存储null值
    HashMap不是线程安全的,可以存储null值
    还有什么不明白的吗??
      

  2.   

    这个要看你拿来做什么用了....
    比如实现Collection接口的类,如果底层是用数组实现,那么添加新元素花费的时间会比较多,因为他要保证这个数组的容量足够大,所以在每添加一个新元素的时候都要自动扩大数组容量....如果实现Collection接口的类底层是用链表实现,那么他查找一个元素所花费的时间会比较长,因为他不能通过下标来查找,只能一个个的遍历....所以在add()操作比较多的时候用LinkedList性能比较好,在search()操作比较多的时候用ArrayList和Vector比较好