- 博客(7)
- 收藏
- 关注
原创 HashMap,LinkedHashMap,TreeMap的数据存储原理
HashMap的原理与HashSet的存储原理完全一致。请参考HashSet的数据存储原理http://blog.csdn.net/jin6872115/article/details/78939484LinkedHashMap的原理与HashSet的存储原理完全一致。请参考LinkedHashSet的数据存储原理http://blog.csdn.net/jin6872115/ar
2017-12-31 10:39:33 374
原创 TreeSet的数据存储原理
TreeSet是对HashSet的排序,可以指定比较器,默认自然升序排序提供众多方法。add方法:public boolean add(E e) {return m.put(e, PRESENT)==null;}使用NavigableMap的put方法。private transient NavigableMap m;此方法由TreeMap进行实现。输入元素作为
2017-12-31 10:34:00 2384
原创 HashSet,LinkedHashSet的数据存储原理
HashSet的底层使用的是HashMap结构。LinkedHashSet是在HashSet的基础上记录数据存序列,以数据存储序列作为数组索引,其他操作与HashSet一致插入元素方法:add(),调用方法,使用HashMap的map函数,public boolean add(E e) {return map.put(e, PRESENT)==null;}//以键入元素为键
2017-12-30 21:12:17 1126
原创 ArrayList、LinkedList的数据存储原理
ArrayList:源码定义了一个数组transient Object[] elementData;(在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。...
2017-12-30 16:39:54 3246
原创 PriorityQueue的数据存储原理
按照数组存储,存储形式为二叉树,示意图如下。数组q.第一个插入元素首先在q[0]位置第二个插入元素在q[1],然后比较q[1]与q[0]的大小,如果q[1]第三个插入元素在q[2],然后比较q[2]与q[0]的大小,如果q[2]第四个插入元素在q[3],然后比较q[3]与q[1]的大小,如果q[3]第五个插入元素在q[4],然后比较q[4]与q[1]的大小,如果q[4]
2017-12-30 15:22:33 398
原创 关于ArraysList,LinkedList,HashSet,LinkedHashSet,TreeSet的总结
关于ArraysList,LinkedList,HashSet,LinkedHashSet,TreeSet的总结ArraysList:底层是数组,有序结构,按照进栈先后分配索引,查找方便,属于先进后出,如果从后面取元素,效率快在指定位置添加元素时,(System.arraycopy(elementData, index, elementData, index + 1, size - i
2017-12-27 22:40:35 1275
原创 java Lambda 初识
Lambda表达式的理解为:函数式接口的简写,可以作为参数进行传递//定义接口interface Ifly{void fly();//实现功能飞}interface Italk{void talk();//函数式接口实现功能说}abstract class Animal{void breed() {};}abstract class Duck exten
2017-12-26 16:35:39 130
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人