从屌丝到架构师的飞越(集合篇)-LinkedList

2019-06-24  本文已影响0人  走着别浪

一.介绍

LinkedList不同于前面两种List,它不是基于数组的,所以不受数组性能的限制。

它每一个节点(Node)都包含两方面的内容:

A、节点本身的数据(data);

B、下一个节点的信息(nextNode)。

所以当对LinkedList做添加,删除动作的时候就不用像基于数组的ArrayList一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了,这是LinkedList的优势。

LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

二.知识点介绍

1、LinkdedList链表操作

2、LinkedList常用方法

三.上课对应视频的说明文档

1、LinkdedList链表操作

LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。如下图

LinkedList是List的子类,List中的方法LinkedList都是可以使用,这里就不做详细介绍,我们只需要了解LinkedList的特有方法即可。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。

方法演示:

LinkedList<String> link = new LinkedList<String>();

//添加元素

link.addFirst("abc1");

link.addFirst("abc2");

link.addFirst("abc3");

//获取元素

System.out.println(link.getFirst());

System.out.println(link.getLast());

//删除元素

System.out.println(link.removeFirst());

System.out.println(link.removeLast());

while(!link.isEmpty()){ //判断集合是否为空

System.out.println(link.pop()); //弹出集合中的栈顶元素

}

2、LinkedList常用方法

案例1:

importjava.util.*;

public class LLTest{

public static void main(String args[]){

List l=new LinkedList();

for(inti=0;i<=5;i++){

l.add("a"+i);

}

l.add(3,"a100");  //添加

System.out.println(l);

l.set(6,"a200");  //更改

System.out.println(l);

System.out.println(l.get(2));  //获取值

System.out.println(l.indexOf("a3"));  //下标

l.remove(1);    //移除

System.out.println(l);

System.out.println(l.indexOf("a3"));

}

}

案例2:

importjava.util.*;

public class LLTest2{

public static void main(String args[]){

List l=new LinkedList();

l.add("a1");

l.add("a2");

System.out.println(l);

l.addFirst("a100"); //添加到头

l.addLast("a200");  //添加到尾

System.out.println(l);

System.out.println(l.getFirst());  //获取头

System.out.println(l.getLast());    //获取尾

l.removeFirst();    //移除头

l.removeLast(); //移除尾

System.out.println(l);

}

}

上一篇下一篇

猜你喜欢

热点阅读