ht-3 linkedList特性
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());
} }

ht-3 linkedList特性的更多相关文章
- 《java JDK7 学习笔记》之Collection
一.使用Collection 收集对象 1.认识Collection架构 Java SE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口操作架构,才能了解何时使用哪个类,以及类之 ...
- 201453408刘昊阳 《Java程序设计》第5周学习总结
201453408刘昊阳 <Java程序设计>第5周学习总结 教材学习内容总结 第8章 异常处理 8.1 语法与继承结构 8.1.1 使用try.catch p227代码(Average) ...
- CC150 - 11.2
Question: Write a method to sort an array of strings so that all the anagrams are next to each other ...
- 20145218 《Java程序设计》第五周学习总结
20145218 <Java程序设计>第五周学习总结 教材学习内容总结 异常 程序中总有些意想不到的状况所引发的错误,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失 ...
- 学号20145220 《Java程序设计》第5周学习总结
学号20145220 <Java程序设计>第5周学习总结 教材学习内容总结 语法与继承结构 8.1.1使用try.catch java中所有的错误都会被打包为对象,并提供了特有的语句进行处 ...
- 20145129 《Java程序设计》第5周学习总结
20145129 <Java程序设计>第5周学习总结 教材学习内容总结 语法与继承架构 使用try.catch Java中所有错误都会被打包为对象,可以尝试(try)捕捉(catch)代表 ...
- 20155334 2016-2017-2 《Java程序设计》第五周学习总结
20155334 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 第八章:异常处理 Java中所有错误都会被打包为对象,在编程的时候会遇到因各种原因而导致的错 ...
- 20155219 2016-2017-2 《Java程序设计》第5周学习总结
20155219 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 异常处理 语法与继承构架 异常就是程序在运行时出现的不正常情况.java中的错误以对象的方式 ...
- 20155227 2016-2017-2 《Java程序设计》第五周学习总结
20155227 2016-2017-2 <Java程序设计>第五周学习总结 教材学习内容总结 语法与继承架构 使用try...catch JVM会尝试执行try区块中的程序代码,如果发生 ...
随机推荐
- AtomicBoolean 源码分析
AtomicBoolean AtomicBoolean 能解决什么问题?什么时候使用 AtomicBoolean? 可原子更新的 boolean 值 1)原子性:在Java中,对基本数据类型变量的读取 ...
- 用流的方式来操作hdfs上的文件
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...
- 佳能mp288拆解步骤--绝对原创
http://itbbs.pconline.com.cn/office/50663206.html 佳能mp288拆解步骤--绝对原创 gotobug Lv1太平洋舰队新兵 楼主 2013-10-13 ...
- B-/B+树 MySQL索引结构
索引 索引的简介 简单来说,索引是一种数据结构 其目的在于提高查询效率 可以简单理解为“排好序的快速查找结构” 一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在中磁 ...
- Vuex模块:不开启命名空间
模块不开启命名空间时,会共享全局命名空间. { state: { 模块1: "局部状态1", 模块2: "局部状态2" }, getters: { getter ...
- vue2.0 watch里面的 deep和immediate作用
deep,默认值是 false,代表是否深度监听.immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样, ...
- HTML+CSS ,原型
此图是别人所作
- docker相关知识
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI).持续部署(CD)为基础,来优化程式开发.测试.系统运维等所有环节.突出重视软件开发人员和运维人员的沟通合作,通过自 ...
- python学习笔记(7)文件的访问与函数式编程
一.文件读写的3中方法 1.直接读入 fiel1=open('test.txt') file2=open('output.txt') while True: line=file1.readLine() ...
- git如何上传大文件,突破大小限制
Github中单个文件的大小限制是100MB,为了能突破这个限制,我们需要使用Git Large File Storage这个工具, git lfs install git lfs track &qu ...