黑马程序员_日记37_LinkedList概述及特有方法演示
来源:互联网 发布:修改sql语句怎么写 编辑:程序博客网 时间:2024/05/17 01:32
——- android培训、java培训、期待与您交流! ———-
查阅API,获取LinkedList类的基本信息。
List 接口的链接列表实现。
实现所有可选的列表操作,并且允许所有元素(包括 null)。
除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。
这些操作允许将链接列表用作堆栈、队列或双端队列。
注意,此实现不是同步的。
那么如何解决多线程同步的问题呢?
API告诉了我们答案:
使用 Collections.synchronizedList 方法来“包装”该列表。
最好在创建时完成这一操作,以防止对列表进行意外的不同步访问,如下所示:
List list = Collections.synchronizedList(new LinkedList(…));
此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的。
特点:增删速度很快,查询稍慢。
LinkedList拥有很多方法,下面仅给出它特有的方法,并对其进行演示。
LinkedList:特有方法:
addFirst();可以用于头插法建立单链表
addLast();可以用于尾插法建立单链表
getFirst();
getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst();
removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
在JDK1.6出现了替代方法。
offerFirst();
offerLast();
peekFirst();
peekLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst();
pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null。
import java.util.*;class LinkedListDemo { public static void main(String[] args) { method_LinkedList(); } //LinkedList特有方法演示 public static void method_LinkedList() { //创建链表 LinkedList link = new LinkedList(); //用共性方法添加基本元素 link.add("num01"); link.add("num02"); link.add("num03"); link.add("num04"); //打印原有链表 System.out.println("原有链表:"+link); //头插法 link.addFirst("num05"); //打印结果 System.out.println("在头部插入元素后:"+link); //尾插法 link.addLast("num06"); //打印结果 System.out.println("在尾部插入元素后:"+link); //获取第一个元素 System.out.println("第一个元素:"+link.peekFirst()); //获取最后一个元素 System.out.println("最后一个元素:"+link.peekLast()); //获取并删除第一个元素 System.out.println("删除第一个元素:"+link.pollFirst()); System.out.println("删除后的链表:"+link); //获取并删除最后元素 System.out.println("删除最后一个元素:"+link.pollLast()); System.out.println("删除后的链表:"+link); //取出并打印LinkedList中的元素 while(!link.isEmpty()) System.out.println(link.pollFirst()); }}
- 黑马程序员_日记37_LinkedList概述及特有方法演示
- 黑马程序员_日记34_JavaList特有方法
- 黑马程序员_日记38_LinkedList建立堆栈练习
- 黑马程序员-LinkedList 特有方法学习日记
- 黑马程序员_日记56_Map概述和简单方法
- 黑马程序员_日记20_JavaString概述
- 黑马程序员_LinkedList
- 黑马程序员_学习日记29_winphone7开发_概述
- 黑马程序员_日记47_泛型概述
- 黑马程序员_日记65_Arrays方法
- 黑马程序员_日记30_Java集合框架概述
- 黑马程序员,LinkedList:特有方法。即练习
- 黑马程序员_日记21_JavaString常用方法
- 黑马程序员_日记32_JavaRemoveAll方法测试
- 黑马程序员_日记62_Collections工具类方法
- 黑马程序员_一、java概述及环境的搭建
- 黑马程序员_温习 网络编辑三 (个人笔记)摘要(TCP概述 ----TCP 演示)
- 黑马程序员_多线程概述
- VLC通过rtsp请求服务器,服务器接收rtp数据并转发
- 全角与半角的转换函数
- Codeforces 534D Handshakes(贪心)
- LXC初步体验
- Java实现归并排序
- 黑马程序员_日记37_LinkedList概述及特有方法演示
- [水]POJ2431
- 多线程(四) :同步工具类 和 集合工具类
- Vxworks任务间的通信
- ubuntu14.10安装arm的qwt(2)
- 苹果审核被拒/sdk 4.2上不显示没有安装客户端的平台,友盟第三方登陆,强制安装QQ客户端,被拒绝
- Java开发之反射机制(详)
- CMOS Sensor的调试经验分享
- CSS:盒子模型与定位