数据结构
链表
优点:随机增删元素效率高(因为增删元素不涉及到大量元素的位移)
缺点:查询效率较低,每一次查找某个元素的时候都需要从头结点开始往下遍历
LinkedList集合
/* 链表的优点: 由于链表的元素在在空间存储上内存地址不连续。 所以随机存储增删元素的时候不会有大量数据的位移,所以随机增删效率较高 在以后的开发过程中,如果遇到随机增删集合中元素的业务比较多时,建议使用LinkedList 链表的缺点: 不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头结点开始遍历,直到找到为止。所以LinkedList集合检索/查找的效率较低 ArrayList:把检索发挥到极致。(末尾添加元素效率还是很高的) LinkedList:把随机增删发挥到极致 加元素都是往末尾添加,所以ArrayList用的比LinkedList多 源码中,first 指向头结点 last结点始终指向尾结点 * */ class LinkedListTest {public static void main(String[] args) {//List list = new LinkedList(); 底层用了数组List list = new LinkedList();//底层用了双向链表list.add("a");list.add("b");list.add("c");for(int i = 0;i<list.size();i++){Object obj = list.get(i);System.out.println(obj);}//LinkedList没有初始化容量//最初的这个链表中没有任何元素。first和last的引用都是null//不管是ArrayList还是LinkedList,以后写代码时不需要关心具体是哪个集合//因为我们要面向接口编程,调用的方法都是接口中的方法} }