数据结构
Em_dark
这个作者很懒,什么都没留下…
展开
-
LinkedList相关细节
LinkedList允许空 LinkedList允许重复数据 LinkedList有序 LinkedList非线程安全 LinkedList是链表结构,这个在很多数据结构的书籍里都能知道的 就是有前有后有元素 pre next elementList<String> list = new LinkedList<String>(); list.add("111");增 在new Li原创 2017-08-11 16:05:58 · 253 阅读 · 0 评论 -
ArrayList相关细节
ArrayList是可以为空的 ArrayList可以有重复数据 ArrayList是有序的 ArrayList线程不安全 添加元素 先判断是否要扩容 在把元素放进去 ArrayList的底层是基于动态数组实现的原因那么要扩容的话要扩多少呢? 源码里是在方法(ensureCapacity)里 int newCapacity = (oldCapacity * 3)/2 + 1;扩大了-->空间原创 2017-08-11 15:41:44 · 379 阅读 · 0 评论 -
HashMap相关细节
HashMap是一种键值对(K-V)形式的存储结构. KEY AND VALUE 都可以为空 KEY 重复会覆盖, VALUE 可以重复 无序(不会按照PUT进去的顺序读) 线程不安全 static class Entry<K,V> implements Map.Entry<K,V> { final K key; V value; Entry<K,V> next; i原创 2017-08-14 11:27:14 · 239 阅读 · 0 评论 -
TreeMap相关详解
如果只需要存储功能,使用HashMap与LinkedHashMap是一种更好的选择;如果还需要保证统计性能或者需要对Key按照一定规则进行排序,那么使用TreeMap是一种更好的选择。红黑树是为了维护二叉查找树的平衡而产生的一种树 根节点与叶节点都是黑色节点,其中叶节点为Null节点 每个红色节点的两个子节点都是黑色节点,换句话说就是不能有连续两个红色节点 从根节点到所有叶子节点上的黑色节点数量是相原创 2017-08-14 14:32:31 · 428 阅读 · 0 评论