LinkedList 底层用双向链表实现的存储。特点:查询效率低,增删效率高,线程不安全。双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向前一个节点和后一个节点。 所以,从双向链表中的任意一个节点开始,都可以很方便地找到所有节点。
1.1双向链表的介绍class Node {
E item;
Node next;
Node prev;
}
1.2LinkedList的使用(List标准)
LinkedList实现了List接口 ,所以LinkedList是具备List的存储特征的(有序、元素有重复)
package LinkedList;
/*
*
* 双向链表,List接口中定义的标准
*
* */
import java.util.Arrays;
import java.util.LinkedList;
public class Test {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList<>();
//增加元素
linkedList.add("张三");
linkedList.add("李四");
linkedList.add("王五");
linkedList.add("赵六");
//获取元素
for(String list: linkedList ){
System.out.println(list);
}
// 删除元素,返回给flag删除元素的值
String flag = linkedList.remove(0);
System.out.println(flag);
//转换为数组形式
String[] strings = linkedList.toArray(new String[linkedList.size()]);
// 输出数组·
System.out.println(Arrays.toString(strings));
}
}
运行结果:
1.3LinkedList的使用(非List标准)import java.util.Arrays;
import java.util.LinkedList;
public class Test02 {
/*
* 非List的使用
* 它在实现List的时候也添加了自己的方法
* 以双向链表存储内容
* */
public static void main(String[] args) {
LinkedList linkedList = new LinkedList<>();
// 在链表的第一个位置进行插入元素
linkedList.addFirst("a");
linkedList.addFirst("b");
linkedList.addFirst("c");
// 为了让视觉鲜果更加明显。我们尽量使用数组形式进行输出
String[] strings = linkedList.toArray(new String[linkedList.size()]);
System.out.println(Arrays.toString(strings)); //输出内容为c、b、a
// 得到第一个元素
System.out.println(linkedList.get(0)); //输出c
System.out.println(linkedList.get(1)); //输出b
// 得到最后一个元素
System.out.println(linkedList.getLast()); //输出a
// 移除第一个元素
linkedList.removeFirst();
// 移除最后一个元素
linkedList.removeLast();
// 移除元素之后我们的List中就只剩下b了
// 那我们读取栈顶元素
System.out.println("读取到栈顶元素:"+linkedList.peek());
// 再注入元素
linkedList.push("注入");
String[] str = linkedList.toArray(new String[linkedList.size()]);
System.out.println(Arrays.toString(str));
}
}
运行结果;
本章因为涉及到数据结构内容中双向链表部分,以后还会继续扩展,请大家多多关注!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)