java集合解析

来源:互联网 发布:如何评价崇祯知乎 编辑:程序博客网 时间:2024/06/05 14:14

集合中存储的并非对象,而是对象的引用;
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
原创粉丝点击