写在前面——本文是对LinkList(链表)相关知识方法的介绍
1.LinkedList简介
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。通常链表可分为单向链表和双向链表。
e.g.LinkedList与ArrayList的对比:
与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低
2.常用方法
大部分方法及语法和ArrayList中差不多,以下介绍几种新的方法及其语法
(1). 添加首元素
语法如下:
类名.addFirst("内容")
(2).添加尾元素
语法如下:
类名.addLast("内容");
(3).去掉首元素
语法如下:
类名.removeFirst();
(4).去除尾元素
语法如下:
类名.removeLast();
(5).查找首元素
语法如下:
类名.getFirst()
(6).查找尾元素
语法如下:
类名.getLast()
3.测试样例
LinkedList<String>linklist1=new LinkedList<String>();
System.out.println("添加元素测试:");
linklist1.add("bob");
linklist1.add("devid");
linklist1.add("alice");
System.out.println("添加后:"+linklist1);
System.out.println("*********");
/*
System.out.println("添加首元素测试:");
System.out.println("原链表元素为:");
linklist1.addFirst("alen");
System.out.println("添加后链表元素为:"+linklist1);
*/
/*System.out.println("添加末元素测试:");
System.out.println("原链表元素为:");
linklist1.addLast("FAll");
System.out.println("添加后链表元素为:"+linklist1);
*/
//临时添加以下元素以便后续测试
/*
linklist1.addFirst("alen");
linklist1.addLast("FAll");
System.out.println("样例元素为:"+linklist1);
linklist1.removeFirst();
System.out.println("去头后元素为"+linklist1);
linklist1.removeLast();
System.out.println("去尾后元素为"+linklist1);
*/
System.out.println("获取首元素"+linklist1.getFirst());
System.out.println("获取尾元素"+linklist1.getLast());
System.out.println("*********");
System.out.println("迭代器1:");
for(int i=0;i<linklist1.size();i++)
{
System.out.print(linklist1.get(i)+",");
}
System.out.println();
System.out.println("迭代器2:");
for(String i:linklist1)
{
System.out.print(i+",");
}
System.out.println("*********");
Collections.sort(linklist1);
for(String j:linklist1)
{
System.out.print(j+",");
}
结果如下:
添加元素测试:
添加后:[bob, devid, alice]
*********
获取首元素bob
获取尾元素alice
*********
迭代器1:
bob,devid,alice
迭代器2:
bob,devid,alice