java集合解析

集合中存储的并非对象,而是对象的引用;
Set集合:元素无序,不可重复;
HashSet:系统采用hash算法决定SimpleEntity存储位置,这样可以保证快速存取;
底层其实是对HashMap的操作
TreeSet:系统采用“红黑树“的排序二叉树来保存Entity;
底层其实是对TreeMap的操作
Map集合:key-value对组成,key无序,不可重复,类似于传统的关联数组;
HashMap:系统把value当作key的附属物,对key采用hash算法来决定存储位置,这样可以保证快速存取,而value紧随key存储;
底层将key-value当成一个整体进行处理,这个整体就是entity对象,在底层采用一个Entity[]来保存所有的key-value,当需要存储entity对象时,对key进行has算法来决定它在entity[]中的位置,当取出一个entity时,会根据key的hash算法找到存储的位置,直接取出entity;这里entity[]的最大容量由负载因子和初始化空间相乘决定;负载因子默认0.75;
TreeMap,系统采用“红黑树“的排序二叉树来保存,每个entity当作红黑树的一个节点,第一次put的会当做根节点,后面put的作为新节点,这样可以保证key总是从小大大排列,常用语加签params排序;
Set set = map.KeySet();
List集合:
ArrayList:底层就是一个数组;
LinkedList:双联表结构;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值