摘要: 1:集合(自己补齐)Collection(单列集合)List(有序,可重复)ArrayList底层数据结构是数组,查询快,增删慢线程不安全,效率高Vector底层数据结构是数组,查询快,增删慢线程安全,效率低LinkedList底层数据结构是链表,查询慢,增删快线程不安全,效率高Set(无序,唯一) 阅读全文
posted @ 2018-03-19 15:37 gxz_sw 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 同样是List的数据结构,LinkedList是使用了前后指针,指明节点的方式来表示链表的,这与之前介绍的ArrayList中使用数组的方式是截然不同的。LinkedList中的存储节点被称作节点(Node),一个节点的定义如下所示: 这是LinkedList的一个内部类,不需要使用LinkedLi 阅读全文
posted @ 2018-03-19 14:37 gxz_sw 阅读(366) 评论(0) 推荐(0) 编辑
摘要: ArrayList是一个基于数组实现的链表(List),这一点可以从源码中看出: 可以看出ArrayList的内部是给予数组来处理的。 从ArrayList中查找一个元素的index,其时间复杂度是o(n),其源码如下所示: ArrayList支持Clone,是使用Arrays.copyOf(Obj 阅读全文
posted @ 2018-03-19 14:34 gxz_sw 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 关于Java集合的小抄中是这样描述的: 以数组实现。节约空间,但数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组,因此最好能给出数组大小的预估值。默认第一次插入元素时创建大小为10的数组。 按数组下标访问元素—get(i)/set(i,e) 的性能很高 阅读全文
posted @ 2018-03-19 14:27 gxz_sw 阅读(215) 评论(0) 推荐(0) 编辑