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

  • 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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值