java 常见数据结构的解析
1:List对象
类图
List:
有顺序的,元素可以重复;
遍历:for,迭代;
排序:Comparable Comparator Collections.sort()
ArrayList:
底层用数组实现的List;
特点:查询效率高,增删效率低 轻量级 线程不安全;
为什么查询快?
数组的特性是可以使用索引的方式来快速定位对象的位置,因此对于快速的随机取得对象的需求,使用ArrayList实现执行效率上会比较好;
但是数组再增加超出额外的对象时,是通过复制成新的数组来进行数组扩容,所以性能会有偏差 ;ArrayList默认使用10个
LinkedList : 底层用双向循环链表实现的List;
特点:查询效率低,增删效率高;
为什么增删效率高?
由于链表结构的特性,每个Node都有保存向前或向后的指针
private static class Node<E> { E item;