现在的位置: 首页 > 综合 > 正文

List Map Set之间的区别,以前觉得这些没什么,但是看到大牛们写的代码,发现掌握这些是很有必要的,仅供自己学习

2013年07月18日 ⁄ 综合 ⁄ 共 853字 ⁄ 字号 评论关闭
  • Collection

    • List

      • LinkedList
      • ArrayList
      • Vector
        • Stack
    • Set
  • Map

    • HashTable
    • HashMap

Collection接口

    Collection是最基本的集合接口,一个Collection代表了一组Object,即Collection的元素,一些Collection允许有相同的元素而另一些则不行,一些能排序而另一些不行。Java JDK提供的类都是继承自Collection的“子接口”,如List和Set

    List是有序集合,允许有元素重复

    List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引来访问List中的元素,类似于Java中的数组。

    Vector与ArrayList的区别主要是:Vector的方法是同步的(Synchronized),是线程安全的,而ArrayList的方法不是,由于线程同步必然要影响性能,因此ArrayList的性能比Vector好。当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只是增加50%的大小,因此,ArrayList更加节约内存空间。

   

    Set是无序集合,不允许有元素重复

    Set是一种包含重复的元素的Collection,即任意两个元素e1和e2都是e1.equals(e2) == false,Set最多有一个null元素。

    Map接口

    Map没有继承Collection接口,Map提供key到value的映射,一个Map中不能包含相同的key值,每个key映射一个value,Map接口提供3中集合的视图,Map的内容可以当做一组key集合,一组value集合,或者一组key-value映射。

    总结

    如果涉及到堆栈,队列等操作,应该考虑使用List,对于需要快速插入、删除元素的操作,应该使用LinkedList,如果需要快速随即访问元素,应该使用ArrayList

抱歉!评论已关闭.