java中的集合的区别

Java集合分为value,key------value(conllection map)两大部分
1.储存值的(value)有list和set
        1.1 list是有序的,可以重复的。list又分为ArrayList和LinkedList
        1.1.1 ArrayList:底层源码中用的是数组,根据数组的特性,ArrayList对于查询操作效率高,对于插入/删除操作效率低                           (数组在内存中是连续的,插入或删除时需要移动内存,但查找可以根据索引查找)
        1.1.2 LinkedList:底层源码中用的是链表,根据链表的特性,LinkedList对于插入/删除操作效率高,对于查询操作效率低                       (链表在内存中是不连续的,插入或删除时不需要移动内存,但查询时需要从第一个开始寻找)
         因此ArrayList用于查询比较多插入或删除较少的情况下,LinkedList用于查询比较少插入或删除较多的情况下,一般用                    ArrayList情况比较多。
        1.2 set是无序的,不可重复的。不可重复根据equals和hascode判断,即用set存储值时必须从写equals和hascode方法。
2.储存key------value的是map
    map分为hashmap和hastable
    hashmap允许key或value为null,而hastable不可以的
    hashmap是线程不安全的,效率较高
     hashtable是线程安全的,效率较低
    如果想线程安全并且效率高需要使用ConcurrentHashMap(jdk1.5后线程并发库中提供的),就是把整个map分成n个(    类似hashtable),每个map都是线程安全的,且可以实现并发,并且效率提高n呗,默认n=16.
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值