03 2018 档案
摘要:1:集合(自己补齐)Collection(单列集合)List(有序,可重复)ArrayList底层数据结构是数组,查询快,增删慢线程不安全,效率高Vector底层数据结构是数组,查询快,增删慢线程安全,效率低LinkedList底层数据结构是链表,查询慢,增删快线程不安全,效率高Set(无序,唯一)
阅读全文
摘要:同样是List的数据结构,LinkedList是使用了前后指针,指明节点的方式来表示链表的,这与之前介绍的ArrayList中使用数组的方式是截然不同的。LinkedList中的存储节点被称作节点(Node),一个节点的定义如下所示: 这是LinkedList的一个内部类,不需要使用LinkedLi
阅读全文
摘要:ArrayList是一个基于数组实现的链表(List),这一点可以从源码中看出: 可以看出ArrayList的内部是给予数组来处理的。 从ArrayList中查找一个元素的index,其时间复杂度是o(n),其源码如下所示: ArrayList支持Clone,是使用Arrays.copyOf(Obj
阅读全文
摘要:关于Java集合的小抄中是这样描述的: 以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。 按数组下标访问元素—get(i)/set(i,e) 的性能很高
阅读全文
摘要:1.开闭原则(Open Close Principle) 2.里氏代换原则(Liskov Substitution Principle) 3.依赖倒转原则(Dependence Inversion Principle) 4.接口隔离原则(Interface Segregation Principle
阅读全文
浙公网安备 33010602011771号