LinkedList内部封装的是双向链表数据结构,每个节点是一个Node对象。 Node对象中封装的是要被添加的元素,还有一个指向上一个Node对象的引用和 指向下一个Node对象的引用 , 与ArrayList容器相比,不同的容器有不同的数据结构,不同的数据结构操作起来性能不同。 链表数据结构,做插入删除的效率比较高,但查询效率比较低 。 而数组结构(线性)做查询时效率高,可以直接通过下标来直接找到元素,但插入和删除效率低, 插入或删除元素后数组其他元素要做移位操作, 当需要频繁进行增删操作,使用LinkedList效率高,当只需要查询功能时,使用ArrayList容器效率高

 package com.iotek.list;

 import java.util.Iterator;
import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { LinkedList<String> sList = new LinkedList<String>();
// List<String> sList = new LinkedList<String>();
// 使用List接口的引用变量,
// sList.addFirst("chenchao");将会报错!!!因为List接口中没有这个方法,addFirst()和addLast()方法是Deque接口里特有的方法,
// 子类有,父类没有的方法,只能由子类对象来调用,父类的引用变量不能调用子类特有的方法
sList.add("zhangsan"); // 添加元素
sList.add("lisi");
sList.add("wangwu");
sList.add("rose");
sList.add("mary");
sList.add("jack");
sList.addFirst("chenchao"); // 在首位置添加一个元素
sList.addLast("mandy"); // 在末尾位置添加一个元素 System.out.println(sList.toString()); // LinkedList实现了List接口,List实现了Collection,Collection又实现了Iterable接口,
// 所以这里输出LinkedList容器中的元素,可以通过迭代器对象或者是foreach语句来输出
Iterator<String> it = sList.iterator(); // 产生一个迭代器对象
System.out.println("使用迭代器对象输出容器元素:");
while (it.hasNext()) { // 判断容器中下一个元素不为空,则读取出来并赋给一个String类型的变量
String name = it.next();
System.out.print(name + " ");
}
System.out.println("\n" + sList.removeFirst());// sList.removeFirst()方法 移除并返回链表的第一个元素
System.out.println("删除第一个元素后剩下的元素个数是:" + sList.size());
sList.clear(); // 清空容器中的元素,在此处清空,pollFirst()会返回一个null
System.out.println(sList.pollFirst());
System.out.println(sList.size());
} }

最新文章

  1. vi
  2. 【POJ】2104 K-th Number(区间k大+主席树)
  3. eclipse运行时编码设置
  4. iOS 打包静态类库 lib.a
  5. [tty与uart]2.tty和uart的函数调用流程
  6. 一个简单的Android小实例
  7. 使用OpenWrt的SDK
  8. 安卓开发学习笔记(五):史上最简单且华丽地实现Android Stutio当中Webview控件https/http协议的方法
  9. CSS 隐藏页面元素的 几 种方法总结
  10. GCD HDU - 1695(容斥原理)
  11. TensorFlow Android Camera Demo 使用android studio编译安装和解决Execution failed for task &#39;:buildNativeBazel&#39;报错
  12. Python Scrapy安装
  13. tight
  14. Eclipse系列:如何设置Eclipse关联JDK源码和文档
  15. UVa 820 因特网带宽(最大流)
  16. css !important的作用
  17. 【转】MFC CListCtrl 使用技巧
  18. centos7(debian,manjora,freebsd)命令及安装mysql、git、gpg、gogs,安装docker,zsh,chrome
  19. .NET基础 (08)字符串处理
  20. Ubuntu16.04 安装redis

热门文章

  1. 20190827 On Java8 第十四章 流式编程
  2. 前端 CSS的选择器 高级选择器
  3. [19/05/13-星期一] HTML_head标签 和 body标签_文本标签
  4. Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named &#39;ItemsCustom&#39; in &#39;class com.pojo.OrderDetailCustom
  5. 贪心(change)
  6. (五:NIO系列) Reactor模式
  7. React手稿 - Context
  8. Python 的 sys 模块常用方法?
  9. Oracle 常用统计视图汇总
  10. 实体模型集合对象转换为VO对象集合